我正在考虑写作的方法
class MyClass {
@Get
@Set
protected int aValue;
}
然后,自动为该类生成 get_aValue() 和 set_AValue() 方法。
我发现了这些可能性:
1a) 在编译时。使用注解处理器单独处理 MyClass.java,然后编写一个新的 MyClass.java,最后将后者(替换原来的)与 .java 的其余部分一起使用
1b) 在编译时。使用注释处理器生成一个 MyClassGenerated.java 文件,其中包含一个新类(使用 get/set 方法),该类是原始 MyClass 的子类。
2) 在运行时。使用 java.lang.instrument 和外部工具(如 BCEL)在 MyClass.class 中编织新代码。
好吧,问题是:考虑到我尽可能不想使用第三方库(如 lombok 项目或 BCEL)
a)我是否错过了任何其他方法?
b) 你会使用哪种方法?
我想我会使用 1a) 因为
1b) 不干净(程序的其余部分应该使用 MyClassGeneradted 而不是原来的 MyClass,尽管这可能只是名称问题)
2)真的很难(至少对我来说)。