Java @FinalArgs аннотация - как?
Я перехожу из Scala в Java и по умолчанию не имею окончательных параметров. Я исследовал экспериментальную версию библиотеки Lombok здесь (фоновая информация здесь), в которой были файлы, намекающие на эту функциональность:
" src / core / lombok / экспериментальный / FinalArgs.java", " https://github.com/Lekanich/lombok/blob/hamster/src/core/lombok/javac/handlers/HandleFinalArgs.java", " https://github.com/Lekanich/lombok/blob/hamster/src/core/lombok/eclipse/handlers/HandleFinalArgs.java"
Я никогда не делал много размышлений или написания аннотаций на Java, поэтому указывает на любого, кто может выяснить, как добавить рабочую аннотацию @FinalArgs в мой текущий проект Java (не подключенный к Lombak - моя команда не желает использовать модифицированный / пользовательский версия Ломбак). Первый приз каждому, кто также может объяснить, что происходит.
2 ответа
Вы не можете получить такую аннотацию, не делая то, что делает Lombok (установка плагинов в IDE и, возможно, установка агента vm).
Тем не менее, вы можете настроить большинство IDE для предупреждения или ошибки, если параметр был переназначен.
Там нет никакой дополнительной выгоды в том, чтобы сделать их действительно окончательными. JIT достаточно умен, чтобы понять это самостоятельно.
Ломбок не будет добавлять эту функцию. Вы можете дать указание IDE или статическому анализатору источника генерировать предупреждения, но, начиная с java8, добавление переменных и параметров в окончательный вариант не дает никаких преимуществ. Если они эффективно являются окончательными (никогда не переназначаются), они могут использоваться внутри лямбда- и анонимных внутренних классов, как если бы они были окончательными.