如何以随机顺序调用方法(Java JDK11)?

问题描述 投票:1回答:2
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中,我不知道如何获取方法的内存地址。我该怎么办?

java pointers methods memory-address java-11
2个回答
0
投票
int randomNumber=(int)Math.random()*5;
Method method = Scratch.class.getDeclaredMethod("meth" + randomNumber);
method.invoke();

使用反射。您可以将其放入循环中以随机调用方法。

有关反射的更多信息here


-1
投票

这有点乏味,但是您可以为方法设置一定范围。例如:

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

    if(rand < 0.1) {
        meth1();
    } else if(rand < 0.2) {
       meth2();
    } else if(rand < 0.3) {
       //etc...
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.