繁体   English   中英

Java反射可以将方法添加到不在Java源文件中的类文件中吗?

[英]Could java reflection add method into class file that are not in java source file?

我最近正在研究Java深度学习的源代码。 有一个这样的类NeuralNetConfiguration ,其中有很多字段都需要getter和setter。 但是,NeuralNetConfiguration.java源代码不提供任何源代码。

当我在IntelliJ中打开该项目时,请按ctrl键单击此类的用法,这些用法大多类似于NeuralNetConfiguration.getNInput()或NeuralNetConfiguration.getKernelSize(),IDE会将我定向到所有吸气剂所在的已编译类文件中。为此类中的每个字段定义。

只是想知道这是怎么做的,因为我是Java的新手。 我发现的有关Java反射的帖子表明,除非您编写了自己的类加载器,否则反射不能将方法添加到类的方法中。 我检查了Java项目的深度学习,但我认为他们没有做到这一点。

时不时地困扰着我的是,IntelliJ开始报告那些getFields方法根本无法解决的错误,因为它们根本不在源文件中,尤其是在我使用IntelliJ而不是使用mvn命令行构建项目之后。

神奇之处在于类上的@Data注释。 此注释来自Lombok项目 某处可能有一个注释处理器,可以挂接到编译过程并生成这些方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM