譬如如下代码
- Java code
public class A{public static void main(String[] args){A a = new A();}}
现在我希望临时给这个a加个属性name
可以获得a.name = "xxx";
同时不修改A这个class
JAVA可以实现吗?如何实现呢?
初学JAVA,谢谢~~~~
------解决方案--------------------
按照lz的想法,如果是在程序中实现这个功能应该用继承吧(会增加一个类)
另外Java SE 6 新特性: Instrumentation 新功能:能够替换和修改某些类的定义(虚拟机启动后的动态的操作类)
------解决方案--------------------
通过程序修改 .class 文件!
下面这个是用 ASM 工具为 Student 类添加一个 public String 类型的 address 属性:
1,需要添加属性的原始类:Student.java
- Java code
public class Student { private int age; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
------解决方案--------------------