我正在寻找一种方法来打印 Java 中的所有实例化对象。 PHP 有一个简单的方法,使用 get_declared_classes() :
<?php
print_r(get_declared_classes());
?>
Java 中是否有类似的工具,其工作方式与 PHP 中一样简单?
最佳答案
Java 中的类加载是通过类加载器完成的,因此您只能希望通过给定的类加载器加载所有类。请注意,一个类可能会被不同的类加载器加载,甚至可能会被不同的类加载器以不同的版本加载。
如果您想了解单个类加载器加载了哪些类,请查看 How can I list all classes loaded in a specific class loader
一个简单的解决方案可能是
Field f = ClassLoader.class.getDeclaredField("classes");
f.setAccessible(true);
Vector<Class> classes = (Vector<Class>) f.get(classLoader);
但这取决于 Sun 的实现情况,对于其他供应商可能会失败。
关于java - Java 中是否有与 PHP 的 get_declared_classes() 等效的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27036499/