假设我在运行时从文件夹加载类文件:
ClassLoader cl = new URLClassLoader(urls);
Class cls = cl.loadClass("com.mycompany.MyClass");
让我们说我知道方法returnTestString()
存在于上面定义的模糊类中。如何在不将类作为目标类强制转换为MyClass class = (MyClass) cls.newInstance();
的情况下获取该方法?
答案 0 :(得分:2)
您可以调用任何声明的方法而不使用反射进行强制转换。 This post很好地解释了细节。
简而言之,它是这样的:
Class cls = cl.loadClass("com.mycompany.MyClass");
Method method = cls.getDeclaredMethod ("returnTestString", null);
Object obj = cls.newInstance();
method.invoke(obj, null);