有没有什么办法可以在运行时将新方法和属性注入到类中.
http://nurkiewicz.blogspot.com/2009/09/injecting-methods-at-runtime-to-java.html声明我们可以通过使用Groovy来做到这一点.
只使用Java可以吗?
Ste*_*n C 10
只使用Java可以吗?
简单的答案是强调"你不想那样做!".
这在技术上是可行的,但并非没有采用极其复杂,昂贵和脆弱的技巧,如字节码修改1.即便如此,您还必须依靠动态加载来访问修改后的类型和(可能)反射以利用其新成员.简而言之,你会为自己创造很多痛苦,几乎没有任何好处.
Java是一种静态类型语言,添加/修改类类型签名可能会破坏类的静态类型.
1 - AspectJ等允许您向类中注入其他行为,但它可能不是您所追求的"运行时"注入.当然,注入的方法不能用于静态编译的代码来调用.