Java:使用动态加载的类
我是java新手。 我试图在我的应用程序中使用一些动态加载的类。 应用程序不知道类,只是它尝试按名称加载一个来自输入的类。 它不知道类,所以我不能使用casting,但只需要调用该类的一些方法,每个类都应该有这些方法。 我考虑过接口,但不知道如何实现。 我如何调用这些方法 谢谢Java:使用动态加载的类,java,reflection,class,dynamic,load,Java,Reflection,Class,Dynamic,Load,我是java新手。 我试图在我的应用程序中使用一些动态加载的类。 应用程序不知道类,只是它尝试按名称加载一个来自输入的类。 它不知道类,所以我不能使用casting,但只需要调用该类的一些方法,每个类都应该有这些方法。 我考虑过接口,但不知道如何实现。 我如何调用这些方法 谢谢 Class k = loadMyClassDynamically(); 你可以 Method m = k.getDeclaredMethod("methodName", ArgClass1.class, ArgClas
Class k = loadMyClassDynamically();
你可以
Method m = k.getDeclaredMethod("methodName", ArgClass1.class, ArgClass2.class);
然后,如果您创建一个k的实例
Object ki = k.getDeclaredConstructor().newInstance();
您可以在ki上调用该方法
有关详细信息,请参阅。您可能希望使用接口,或者使用从中继承的基类。通过这种方式,您可以调用在运行时创建的对象的预定义方法集 要做到这一点,您可能必须使用反射来创建基于文本的实例?输入 是的,你可以使用这个类
接口用于确保方法存在。当然,您必须注意例外情况,并针对您的应用程序适当地处理它们。您能举例说明您的意思吗?是的,我同意tylermac;
m.invoke(ki, ArgClass3.class, ArgClass4.class);
public InterfaceType getDynamicClass(String className) {
return (InterfaceType) Class.forName(className).newInstance();
}