java中,怎么获得某个类的所有对象?
有人知道吗?
------解决方案--------------------利用java的反射机制可以得到
------解决方案--------------------嗯,学习.是不是java.lang.reflect啊?我还没有研究过.
------解决方案--------------------基本上办不到。如果你可以修改你的类的话,可以给它添加一个静态数组或容器,再修改构造函数,每创建一个对象就把对象的引用添加到静态数组中。如:   
 public class MyClass { 
   public static ArrayList <MyClass>  ALL_INSTANTS = new ArrayList();   
   //....   
   public MyClass() {   
     //...   
     ALL_INSTANTS.add(this); 
   } 
 }   
 如果有多个构造函数,给每个末尾都加上ALL_INSTANTS.add(this);   
 这样,你就可以遍历MyClass.ALL_INSTANTS来得到所有实例了。
------解决方案--------------------我楼上说的应该可以
------解决方案--------------------Dan1980() 已经说得很好了,即准确又正宗  :D   
 我再提一个未经实践的思路吧(似乎有点偏门):   
 通过 ClassLoader 拦截到目标 Class,为其做一层代理包装,在代理里面处理 newInstance()……
------解决方案--------------------好难啊,这个问题!   
 Dan1980() ( ) 信誉:98    Blog  2007-4-2 17:53:25  得分: 0   
 这要看情况了。 
 如果这种需要只出现在你个人的代码中,那么你完全可以用一个容器来管理你创建的所有对象。 
 如果是团队的需要,那么你可能要改变大家创建的方式了,每创建一个都要登记,以方便统一访问。 
 -------------------- 
 那岂不是每次都去判断下,是否无效? 
------解决方案--------------------java的反射 能获得类的方法,变量字段吧,能得到由它创建的对象吗? 
 ---------------- 
 Class cls = Class.forName( "clsname "); 
 Field[] f = cls.getDeclareFields();   
 这样的吗?