gpt4 book ai didi

java - 如何随机调用方法(Java JDK11)?

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

class Scratch {

public void meth1(){

}
public void meth2(){

}
public void meth3(){

}
public void meth4(){

}
public void meth5(){

}
public static void main(String[] args) {
int randomNumber=(int)Math.random()*5;
}
}

这里我有5个方法,我想随机调用它们。我是 OOP 新手,但对 C 有所了解,在这种情况下,我会将函数(方法)的地址存储在数组中,生成 [0,4] 之间的随机数,并使用数组调用函数随机顺序。但在Java中,我不知道如何获取方法的内存地址。我该怎么做?

最佳答案

您可以使用 Runnable 类型的“函数变量”来执行此操作及其方法Runnable#run .

Scratch s = new Scratch();
List<Runnable> methods = new ArrayList<>();
methods.add(s::meth1); // this is how you reference a method itself
methods.add(s::meth2);
...
methods.get(1).run(); // this is how you "tell" the Runnable to execute its code

抽象方法run被您拥有的代码覆盖,因此这是调用您的方法的“引用”。包内java.util.function如果您的方法有参数或/和返回值,您可以找到许多可以使用的类。

现在从列表中调用随机方法非常简单:

int randomNumber = new Random().nextInt(methods.size());
methods.get(randomNumber).run();

关于java - 如何随机调用方法(Java JDK11)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60891286/

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