是否可以将数组中的方法随机化?

时间:2015-09-30 06:37:09

标签: java arrays methods

我正在使用Java,并想知道是否可以将方法作为元素直接放入数组中。类似的东西:

...[] arrayName = {herp(), derp(), jinkies()};

当我之前看过这个时,有人提到“反思”,但我不知道这是什么(我对编程很新)。有没有一种简单的方法将方法放入数组(我的目标是随机地随机吐出它们,并最终在每个名为“quit”的方法中使用String参数终止)?如果没有,反射如何适用于这种情况(如果有的话)?

我不仅要问是什么反思。我的确切(主要)问题是“是否可以将方法放入数组中”,如果是,那怎么办? 它的语法是什么?

感谢您的时间

2 个答案:

答案 0 :(得分:2)

在java中不可能将函数指定为对象 但是你仍然可以使用lambda表达式或类似的结构。哪个实际上不会分配功能,但你可以像使用它一样使用它。

创建功能界面

@FunctionalInterface
interface MyFunction {
    public void fun();
}

使用lambda表达式初始化该功能接口的数组

MyFunction[] functions = new MyFunction[]{
    () -> System.out.println("I am herp"),
    () -> {
        int a = 2;
        int b = 3;
        System.out.println(a + b);
    }
};

使用数组函数。

functions[0].fun();

答案 1 :(得分:0)

你可以为每个方法创建一个类并创建一个类数组。 也可以通过内部类更轻松地完成它,并且它更具可读性。

(当然每个类都将共享相同的界面)