在Javascript中我们可以这样定义一个对象👇
let obj={
property1:67,
func1: function (){
//Some code
}
}
现在如果我们想给obj
添加一个新属性我可以像这样添加一个新属性
obj.property2=733; //some value or function
现在我也想在Java中做同样的事情。
我有一个类Test👇
public class Test{
int property1=67;
public void func1(){
//Some code
}
}
现在有可能在Java中做像语句#2一样的事情吗?
编辑:从答案中,我知道我们可以为属性使用Map。现在我想知道方法。谢谢
所以我做了一项研究,正如我所看到的,这并不简单。
在java中你不能这样做,实际上,你可以,如果你提供自己的自定义类加载,这真的是一个坏主意,因为即使你改变了你想要的类,你必须重新加载所有与这个类交互的类。
查看本文以了解更多关于类加载器的信息。
当然,还有其他方法,如:
-
ASM一个通用的Java字节码操作和分析框架。
-
Javassist在Java中编辑字节码的库
-
AspectJ面向方面的Java扩展,主要用于清除横切关注点的模块化