有人知道吗?

解决方案 »

  1.   

    嗯,学习.是不是java.lang.reflect啊?我还没有研究过.
      

  2.   

    java的反射 能获得类的方法,变量字段吧,能得到由它创建的对象吗?
      

  3.   

    基本上办不到。如果你可以修改你的类的话,可以给它添加一个静态数组或容器,再修改构造函数,每创建一个对象就把对象的引用添加到静态数组中。如:public class MyClass {
      public static ArrayList<MyClass> ALL_INSTANTS = new ArrayList();  //....  public MyClass() {    //...    ALL_INSTANTS.add(this);
      }
    }如果有多个构造函数,给每个末尾都加上ALL_INSTANTS.add(this);这样,你就可以遍历MyClass.ALL_INSTANTS来得到所有实例了。
      

  4.   

    Dan1980() 已经说得很好了,即准确又正宗  :D我再提一个未经实践的思路吧(似乎有点偏门):通过 ClassLoader 拦截到目标 Class,为其做一层代理包装,在代理里面处理 newInstance()……
      

  5.   

    好难啊,这个问题!Dan1980() ( ) 信誉:98    Blog  2007-4-2 17:53:25  得分: 0  
    这要看情况了。
    如果这种需要只出现在你个人的代码中,那么你完全可以用一个容器来管理你创建的所有对象。
    如果是团队的需要,那么你可能要改变大家创建的方式了,每创建一个都要登记,以方便统一访问。
    --------------------
    那岂不是每次都去判断下,是否无效?
      

  6.   

    java的反射 能获得类的方法,变量字段吧,能得到由它创建的对象吗?
    ----------------
    Class cls = Class.forName("clsname");
    Field[] f = cls.getDeclareFields();这样的吗?