gpt4 book ai didi

java - 从不同的类动态调用方法

转载 作者:行者123 更新时间:2023-11-30 03:31:00 24 4
gpt4 key购买 nike

我有一个要求,我需要以特定模式调用类中的方法,该模式作为输入参数获得。

   public RandomMethod(String ClassName){
//Eg For Class Name Abc , there is a method AbcProcessor which i need to invoke
ClassName.ClassNameProcessor
}

由于我将参数作为 String ,我无法弄清楚如何将 String 转换为可以调用类似 Abc.AbcProcessor() 的形式

我相信有某种方法可以使用反射来做到这一点。但我不知道如何继续。

最佳答案

通过反射,您可以做到这一点,请尝试以下示例:

A类:

public class A {
public void print(){
System.out.println("A");
}
}

B类:

public class B {
public void print(){
System.out.println("B");
}
}

从 A 和 B 调用 print():

public class Test {

public static void callPrint(String className){
try {
Class clazz = Class.forName(className);
Object obj = clazz.newInstance();
clazz.getDeclaredMethod("print").invoke(obj);
} catch (Exception ex) {
ex.printStackTrace();
}
}

public static void main(String[] args) {
callPrint("test.A");
callPrint("test.B");
}
}

关于java - 从不同的类动态调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29049848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com