当前位置: 代码迷 >> J2SE >> JAVA如何给一个对象动态添加属性
  详细解决方案

JAVA如何给一个对象动态添加属性

热度:94   发布时间:2016-04-24 01:23:15.0
JAVA怎么给一个对象动态添加属性?
譬如如下代码
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;    }    }
------解决方案--------------------
探讨
额,感谢您的回复
不过,我希望的是在不修改A的情况下,譬如你这个A是JDK自带的
就拿socket举例把
class A
{
public static void main(String[] args)
{
socket = serverSocket.accept();
}
}
现在我要求给这个socket加个name字段,能实现吗?

  相关解决方案