java - 反射/类 -> 命名类

标签 java reflection

我想知道在使用 CustomClassLoader 加载类后如何能够正常使用它。

Main.java

...
Class <?> clazz = customClassLoader.get("MyClass");
MyClass myClass = _____________________; //fill in the blank, please

如何将 clazz 放入 MyClass,这样我就不必使用 getConstructor()、getMethod() 等所有麻烦的东西?

谢谢。

最佳答案

你不能,因为源文本中有 MyClass...

MyClass myClass = ...;

...要求 MyClass 在编译时可用。

这里通常的解决方案是使用编译时可用的接口(interface),并让MyClass实现该接口(interface)。

Class <?> clazz = customClassLoader.get("MyClass");
TheInterface myClass = (TheInterface)clazz.newInstance();
myClass.someInterfaceMethod();

关于java - 反射/类 -> 命名类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23906871/

相关文章:

c# - 过滤掉 Type.GetMethods() 返回的自动生成的方法(getter/setter/add/remove/.etc)

java - 当来自其他包的类时方法调用失败

java - Java 反射中的 Field 类可以作用于任何对象吗?

c# - 从 StackFrame 获取真实类型的泛型方法

java - 检查文件是否存在于字符串中

java - 读取 JSlider 的值

java - 使用数组中的字符串,不适用于元素?

java - 尝试从 Firebase 获取由 UID 和 Push() 方法生成的两个唯一键下的数据并使用查询

Java:RMI 问题

c# - 如何根据字符串动态调用类?