我正在寻找一种在Java中获取给定类型的所有实例化对象的方法。
对于Ruby,您可以使用ObjectSpace.each_object方法:
a = 102.7
b = 95.1
ObjectSpace.each_object(Numeric) {|x| p x }会给你
95.1
102.7发布于 2009-12-06 13:57:38
没有与此等效的Java。
在Java中这样做的唯一方法是让每个类创建并维护所有实例的集合。国际海事组织,这将是一个坏主意,除非有特殊情况,证明间接费用是合理的。首先,需要以避免垃圾保留的方式实现“所有实例”收集。
发布于 2009-12-06 14:33:07
This article可能值得一看。不久前我偶然发现了Java的反射API,我非常喜欢它。然而,与我交谈过的每个Java程序员都说它是撒旦的产物。
如果这还不能让你想要学习它,我不知道还有什么可以。
发布于 2009-12-06 14:00:27
我不知道你能不能做到。不过,有一个想法--垃圾收集器有运行时接口吗?GC应该跟踪所有当前活动的对象。您可能会以某种方式连接到它来获取此信息,并使用运行时检查来确定哪些对象包含您正在查找的类。
https://stackoverflow.com/questions/1854472
复制相似问题