如何在列表中存储对象(指令)并调用它?

苏加特·曼卡(Sugat Mankar)

假设我是否要在列表中添加对象(指令)并从该列表中依次调用?例如

public static void main(String [] args){

    List list = new ArrayList();
    list.add(System.out.println("1"))
    list.add(System.out.println("2"))
    list.add(System.out.println("3"))

    try{
        for(Object i : list){
        i.invoke()   //....like this i want to invoke each syso
       }
    catch(Exception e){
       e.printStackTrace();
       }
    }

}
尼伯(JB Nizet)

您不能在列表中存储“指令”。您只能存储对象。但是对象有方法,您可以调用以下方法:

List<Runnable> list = new ArrayList<>();
list.add(() -> System.out.println("1"));
list.add(() -> System.out.println("2"));
list.add(() -> System.out.println("3"));

for (Runnable r : list) {
    r.run();
}

上面使用的是lambda,自Java 8起可用。但是您可以在以前的版本中使用匿名类:

List<Runnable> list = new ArrayList<>();
list.add(new Runnable() {
    @Override
    public void run() { 
        System.out.println("1");
    }
});
list.add(new Runnable() {
    @Override
    public void run() { 
        System.out.println("2");
    }
});
list.add(new Runnable() {
    @Override
    public void run() { 
        System.out.println("3");
    }
});   

for (Runnable r : list) {
    r.run();
}

或者,您可以定义自己的Printer类:

public class Printer {
    private final String toPrint;

    public Printer(String toPrint) {
        this.toPrint = toPrint;
    }

    public void print() {
        System.out.println(toPrint);
    }
}


List<Printer> list = new ArrayList<>();
list.add(new Printer("1"));
list.add(new Printer("2"));
list.add(new Printer("3"));

for (Printer p : list) {
    p.print();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在HashMap中存储方法指针并调用它们

如何在对象的对象列表中存储数据?

如何在变量中存储非自封闭标签并在render()方法中调用它?

如何在SQLite.net中存储对象列表?

如何在Java中存储和读取对象的数组列表?

如何在PowerShell对象中存储文件列表?

如何在数组列表中存储解析对象数据

如何在数组中存储对象列表?

如何在多态对象列表中调用函数?

如何在指令中调用函数

如何在Java中存储用户名和密码并在不同的类中调用它们

R:如何在列表中存储列表?

__getslice__您如何在函数中调用它

如何在对象数组列表中存储具有自己的数据类型的列表

您能否将带有参数的函数存储在列表中,并稍后在Python中调用它们?

如何一次调用存储在列表对象中的一项?

如何将方法调用存储到Ruby中的数组中,而不是调用它们

如何在列表压缩中从调用函数的多个返回变量中存储一个变量?

如何在列表理解中定义实例并使用它

如何在头文件中定义对象?(不使用它)

如何在接口对象数组中定义并使用它?

如何删除多个列表中存储的对象

如何检索存储在列表中的对象的引用?

如何获取存储在列表中的对象的属性

如何在Redux中存储的数组列表中更新对象值

如何在存储过程中创建字符串列表变量,以及如何在另一个查询中使用它?

如何在JDBC中调用存储过程

如何在Strongloop中调用存储过程

存储在列表中后如何在Struct实例上调用func