用Java生成getter / setter(再次)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用Java生成getter / setter(再次),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1448字,纯文字阅读大概需要3分钟。
内容图文
![用Java生成getter / setter(再次)](/upload/InfoBanner/zyjiaocheng/765/37ad3e923534492eb89f726230696fc9.jpg)
我正在考虑写作的方法
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)真的很难(对我来说,至少).
解决方法:
你错过了一些东西,如果你想沿着这条路走下去,我会说这是最好的方法:
1c)在编译时.正常编译类,然后使用APT注释处理器修改.class文件(而不是源文件),以将适当的get和set方法添加到字节码.
通过这种方式,您的源代码保持原始状态,您不必使用临时文件,并且实际编译的类正如您所希望的那样.
不过,这是用大锤打开坚果.它是可行的,但是现在你的代码并不是严格意义上的Java,如果有人接受并运行javac,它们就会得到一个没有getter和setter的类.这将使调试变得困难,因为所有的行号都会搞砸,除非你非常确定你用注释处理器完成了正确的操作,否则你甚至无法看到getter和setter的源代码.纠正错误.静态分析工具会告诉您该属性从未使用过,等等.
我是普遍的共识 – 只需使用每个IDE为您提供的方法在源文件中生成它们.这比编写注释几乎没有时间,并且每个开发人员和工具都能理解这一点. Java没有属性 – 克服它.
内容总结
以上是互联网集市为您收集整理的用Java生成getter / setter(再次)全部内容,希望文章能够帮你解决用Java生成getter / setter(再次)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。