LINUX.ORG.RU

История изменений

Исправление 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.