使用反射可以获得几乎与某个类相关的所有内容。你可以获得所有声明的方法,字段和类(甚至可能更多),但是我找不到方法来反思某个方法,所以我可以找出该方法可能使用的类。反映方法范围变量的Java
本质上我想找出给定类所具有的其他类的所有依赖关系。
举例: 考虑下面的代码:
import com.yada.yada.yada.SomeClass
public class MyClass
{
public MyClass
{
new SomeClass();
}
}
我怎样才能找出MyClass的是它的构造函数使用SomeClass的?
我试图想到一种方式来获取在类文件中定义的所有导入语句,但我找不到任何方式。但是,假设有一种方法可以挖掘类文件中定义的所有导入语句,那么如何找到在同一个包中定义的类,这些类不需要导入语句?
编辑:
情景:我们的目标是这个类(MyClass的)的字节码发送到另一个进程。然后这个其他进程接受字节码并使用类加载器加载类(MyClass),依此类推。问题是,当我尝试在另一个进程中创建并运行MyClass的实例时,它失败了,因为它找不到SomeClass的定义。
如果SomeClass是MyClass的成员,它不会是一个问题,但由于唯一的引用是在一个方法中,没有办法通过反射来获得它?
如果在这个过程中从未实例化该类(参见上次编辑,场景位),该怎么办? – JHollanti 2011-02-03 09:37:04