Я рассматриваю подходы к написанию
class MyClass {
@Get
@Set
protected int aValue;
}
а затем автоматически сгенерировать методы get_aValue() и set_AValue() для класса.
Я нашел эти возможности:
1а) Во время компиляции. Используйте процессор аннотаций для отдельной обработки MyClass.java, затем напишите новый MyClass.java и, наконец, используйте этот последний (заменив оригинал) с остальной частью .java.
1b) Во время компиляции. Используйте процессор аннотаций для создания файла MyClassGenerated.java с новым классом (с методами get/set), являющимся подклассом исходного MyClass.
2) Во время работы. Используйте java.lang.instrument и внешний инструмент (например, BCEL), чтобы вплести новый код в MyClass.class.
Что ж, вопросы таковы: учитывая, что, насколько это возможно, я не хочу использовать сторонние библиотеки (например, проект lombok или BCEL)
а) Я пропускаю какой-либо другой подход?
б) Какой подход вы бы использовали?
Думаю, я буду использовать 1а), потому что
1b) не является чистым (остальная часть программы должна использовать MyClassGeneradted вместо оригинального MyClass, хотя, возможно, это только вопрос имен)
2) действительно сложно (для меня, по крайней мере).
getAValue
иsetAValue
. - person whiskeysierra   schedule 14.07.2010