【问题标题】:Java - Passing and executing a function [duplicate]Java - 传递和执行函数[重复]
【发布时间】:2016-01-20 23:56:52
【问题描述】:

有没有办法将一个函数传递给另一个函数然后执行它?

functionCaller(functionToBeCalled());

【问题讨论】:

    标签: java


    【解决方案1】:

    在 java 8 中,您可以使用方法引用或 lambda

    functionCaller(this::functionToBeCalled);
    

    functionCaller(() -> functionToBeCalled());
    

    【讨论】:

    • 谢谢,终于有个简单的方法了。我会尽快将其标记为答案。
    • 请注意,如果您处于静态上下文中,this::functionToBeCalled 将不起作用。
    • @Tunaki 在这种情况下你需要知道类例如MyClass::functionToBeCalled
    【解决方案2】:

    我不知道我是否很好理解你的问题,但实际上你可以在另一个函数的参数中调用一个函数。

    你可以这样做(我想你当前的语言是 Java):

    // if write(...) and getValue() are static method of Writer class  
    Writer.write(getValue());
    
    // if write(...) and getValue() can just be used by instanciate an object
    Writer writer = new Writer();
    String val = writer.getValue();
    writer.write(val);
    

    有基本的Java编程课程。 谢谢

    【讨论】:

    • OP 正在寻找的模式是能够传入要调用的函数,但不会先被调用。
    猜你喜欢
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2016-10-16
    • 2013-12-02
    相关资源
    最近更新 更多