gpt4 book ai didi

java - 更改java中动态调用的方法的名称

转载 作者:行者123 更新时间:2023-12-01 17:53:39 25 4
gpt4 key购买 nike

我有一个对象“JudgesSubmission”,具有以下方法:

public String getInnovationGrade1() {
return innovationGrade1;
}
public String getInnovationGrade2() {
return innovationGrade2;
}
public String getInnovationGrade3() {
return innovationGrade3;
}
public String getInnovationGrade4() {
return innovationGrade4;
}

现在,当调用这些方法时,我想将它们放入一个循环中,其中被调用的方法名称获取附加到其末尾的循环索引,以更改所调用的方法。这可能吗?例如,以下代码永远不会工作,但我编写它是为了解释我需要什么:

judgesSubmission metricScores= new judgesSubmission;
int metricSum=0;
for (int i=0;i<4;i++){
metricSum=metricSum
Integer.parseInt(metricScores.getInnovationGrade+"i"());
}

有没有办法做到这一点,或者我总是写完整的方法名称?

最佳答案

你想做的事情是不可能的......但是通过反射(reflection),例如:

MyObject.class.getMethod("mymethod"+i);

如果没有反射(reflection),您可以使用 Supplier<String> :

public void process(Supplier<String>... suppliers){

judgesSubmission metricScores= new judgesSubmission;
int metricSum=0;
for (Supplier<String> supplier : suppliers){
Integer.parseInt(supplier.get());
}
}

并将其命名为:

MyObject myObject = new MyObject();
process(()->myObject.getInnovationGrade1(),
()->myObject.getInnovationGrade2(),
()->myObject.getInnovationGrade3(),
()->myObject.getInnovationGrade4());

关于java - 更改java中动态调用的方法的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47336552/

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