Java 方法函数数组

Java 方法函数数组,java,android,Java,Android,在java中是否可以将函数存储在数组中? 比如说 public void getMyname(){ // do something here; } public void getLastname(){ //do something here; } Array arr = {getLastName,getMyname}; 像那样?如果是这样的话,这是否正确?在Java中不能将方法存储在数组中,因为方法在Java中不是一流对象。这也是一些人喜欢使用Python、Scheme等其他语言的原

在java中是否可以将函数存储在数组中? 比如说

public void getMyname(){

// do something here;

}

public void getLastname(){

//do something here;
}

Array arr = {getLastName,getMyname};

像那样?如果是这样的话,这是否正确?

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

解决方法是创建一个包含一个方法的接口,然后创建四个实现该接口的类-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();
}
好吧,你可以做到

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    String[] arrwow = {wow(),wow2()};
    Toast.makeText(this, arrwow[1], Toast.LENGTH_SHORT).show();


}

public String wow(){

    String wow = "wow";
    return wow;
}
public String wow2(){
    String wow2 = "wow2";
    return wow2;
}

对我有用…^ ^Goodluck

不,您不能用Java存储函数。来点面向对象的怎么样?创建一个封装姓名信息的
Person
类:

public class Person {
    private String firstName;
    private String lastName;

    public String getFullName() {
        return firstName + " " + lastName;
    }

    public String getFirstName() {
        return firstName;
    }        

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}
举例说明:

Person person = new Person();
person.setFirstName("John");
person.setLastName("Doe");
现在您有了一个要处理的对象,我建议您尽可能长时间地传递
Person
的实例,因为这意味着类型信息将被保留。与将人名反引用到字符串数组相比,您处理的数据类型(姓名、颜色、国家代码等数组)不太明显

也就是说,如果您坚持取消引用名称数据,那么创建
字符串
数组或
列表
并不困难,如果您选择这样做:

String[] nameArray = {person.getFirstName(), person.getLastName()};

// or

List<String> nameList = new ArrayList<String>();
nameList.add(person.getFirstName());
nameList.add(person.getLastName());
String[]nameArray={person.getFirstName(),person.getLastName()};
//或
列表名称列表=新的ArrayList();
nameList.add(person.getFirstName());
nameList.add(person.getLastName());

也许这个问题问得太多了,但你能给我举个例子吗?我不知道这个代码应该放在哪里。。这一切都在主要活动中吗?这是不可能的(Java)