【发布时间】:2011-02-03 18:08:20
【问题描述】:
使用反射,您可以获得与课程相关的几乎所有内容。您可以获得所有声明的方法、字段和类(甚至可能更多),但我找不到反映方法的方法,因此我可以找出该方法可能使用的类。
基本上我想找出给定类所具有的对其他类的所有依赖项。
示例: 给定以下代码:
import com.yada.yada.yada.SomeClass
public class MyClass
{
public MyClass
{
new SomeClass();
}
}
我怎样才能知道 MyClass 在其构造函数中使用 SomeClass ?
我试图想出一种方法来获取在类文件中定义的所有导入语句,但我也找不到任何方法。但是,假设有一种方法可以挖掘类文件中定义的所有导入语句,那么人们如何找出同一个包中定义的类,而这些类不需要导入语句?
编辑:
场景:目标是将这个类(MyClass)的字节码发送到另一个进程。然后这个其他进程接收字节码并使用类加载器加载类(MyClass),依此类推。问题是,当我尝试在另一个进程中创建和运行 MyClass 的实例时,它会失败,因为它找不到 SomeClass 的定义。
如果 SomeClass 是 MyClass 的成员,这不会有问题,但是由于对它的唯一引用在于方法,所以没有办法通过反射来获取它?
【问题讨论】:
标签: java reflection