История изменений
Исправление
Legioner,
(текущая версия)
:
И как первый вариант будет выглядеть в коде?
Я не думаю, что это существенно. Ну к примеру так, что в голову первое пришло:
class A {
read-write int a;
read-only int b;
write-only int c;
int a() {
System.out.println("a getter");
return a;
}
void c(int c) {
System.out.println("c setter");
this.c = c;
}
}
Т.е. аннотируем поле мягким ключевым словом и опционально добавляем кастомные геттер/сеттер по желанию.
Какие минусы нашёл в котлине?
nullability раздражает. Куча ненужных мне фич вроде корутин. Плохая интеграция с Java (свои велосипедные сиквенсы вместо стримов, например, и другие проблемы). Фокус на кросс-платформенность (JS, native), что мне нафиг не надо. Насколько я знаю, не юзает нормально фичи новых версий байткода. Нет конструкции try-with-resources. Он мне нравился, когда он позиционировался, как better Java. Сейчас он позиционируется по-другому и этим потерял свою привлекательность (плюс: когда он начинался, Java была застрявшей на 7-й версии, с тех пор Java ушла вперёд и уже нет опасений, что она умрёт).
Исправление
Legioner,
:
И как первый вариант будет выглядеть в коде?
Я не думаю, что это существенно. Ну к примеру так, что в голову первое пришло:
class A {
read-write int a;
read-only int b;
write-only int c;
int a() {
System.out.println("a getter");
return a;
}
void c(int c) {
System.out.println("c setter");
this.c = c;
}
}
Т.е. аннотируем поле мягким ключевым словом и опционально добавляем кастомные геттер/сеттер по желанию.
Какие минусы нашёл в котлине?
nullability раздражает. Куча ненужных мне фич вроде корутин. Плохая интеграция с Java (свои велосипедные сиквенсы вместо стримов, например, и другие проблемы). Фокус на кросс-платформенность (JS, native), что мне нафиг не надо. Насколько я знаю, не юзает нормально фичи новых версий байткода. Нет конструкции try-with-resources.
Исходная версия
Legioner,
:
И как первый вариант будет выглядеть в коде?
Я не думаю, что это существенно. Ну к примеру так, что в голову первое пришло:
[code=java] class A { read-write int a; read-only int b; write-only int c;
int a() {
System.out.println("a getter");
return a;
}
void c(int c) {
System.out.println("c setter");
this.c = c;
}
} [/code]
Т.е. аннотируем поле мягким ключевым словом и опционально добавляем кастомные геттер/сеттер по желанию.
Какие минусы нашёл в котлине?
nullability раздражает. Куча ненужных мне фич вроде корутин. Плохая интеграция с Java (свои велосипедные сиквенсы вместо стримов, например, и другие проблемы). Фокус на кросс-платформенность (JS, native), что мне нафиг не надо. Насколько я знаю, не юзает нормально фичи новых версий байткода. Нет конструкции try-with-resources.