gpt4 book ai didi

java - 设计方法和使用反射来运行 Java 中的方法

转载 作者:行者123 更新时间:2023-12-02 16:16:35 25 4
gpt4 key购买 nike

我有一个问题。我在一个包中有多个类:假设包是

com.myPackage.first

这个包有以下类:

firstGood
secondGood
thirdBad
fourthGood

每个类都有一个名称相同但实现不同的方法。所以说每个都有一个特定的函数,称为:

public void runMe(){

}

现在我想想出一种方法来给出类名,它将进入类内部并运行该特定方法。

所以从概念上讲,我的方法如下所示:

ArrayList<Class> classList ; // where classList is a list of classes I want to run 

public void execute(){
for(Class c : classList){
// Go inside that class, (maybe create an intance of that class) and run the method called run me
}
}

public void execute(Class c, String methodToRun){
for(Class c : classList){
// Go inside that class, (maybe create an intance of that class) and run the method called run me
}
}

目前。我所能做的是获取我想要运行的类的名称

runMe() 

方法。所以我已经能够找到一种方法来获取我想要运行的类的数组列表。所以我需要帮助的是想出一个方法,它需要一个类名并运行我想要的方法。任何帮助表示赞赏。谢谢

最佳答案

如果您的类有默认构造函数,我建议查看 Class.forName ( ... ) 来获取类对象 Class.newInstance(); (或 Class.getDeclaredConstructor(...) 否则)创建一个新实例,然后 Class.getDeclaredMethod( ... ) 查找该方法并调用它。

所有这些都不考虑你的想法是否真的是一个好主意,因为我真的不太明白为什么你想做你想做的事......

关于java - 设计方法和使用反射来运行 Java 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31678023/

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