java - 方法函数的数组

标签 java android

java中可以将函数存储在数组中吗? 比如说..

public void getMyname(){

// do something here;

}

public void getLastname(){

//do something here;
}

Array arr = {getLastName,getMyname};

就这样?如果是这样,对吗?

最佳答案

在 Java 中,您无法将方法存储在数组中,因为方法不是 Java 中的一流对象。这是一些人更喜欢使用其他语言(例如 Python、Scheme 等)的原因。

解决方法是创建一个包含一个方法的接口(interface),然后创建四个实现该接口(interface)的类 - MoveRight、MoveLeft 等...类。然后,您可以将这些类的实例存储在数组中,并以相同的方式调用它们。

public enum Level1 implements Explorable{
    ROOM1 {
        public void explore() {
            // fight monster
        }
    }, ROOM2 {
        public void explore() {
            // solve riddle
        }
    }, ROOM3 {
        public void explore() {
            // rescue maiden
        }
    };

}

public interface Explorable{
    public abstract void explore();    
}

public static void move(Explorable[] adjacentNodes, int index)
{
    adjacentNodes[index].explore();
}

关于java - 方法函数的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11912543/

相关文章:

java - 如何使android主页按钮栏透明?

java - bin/hive 给出错误问题

java - 如何在 Apache Camel 路由中提及动态目录路径

java - Play框架文件上传无此类文件异常

android - 无法将库项目导入到 Android Studio 项目中

android - 从 cli OS X (10.7.3) 启动 ddms 时出现错误 : "Failed to get the adb version...."

android - 在 Android Studio 中的方法之间跳转,例如 Visual Studio/Eclipse

java - 使用一系列图像的动态壁纸

java - Hibernate limit 结果查询

android - AccessDeniedException 我该如何处理这个错误?