程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我应该如何在我的方法的参数中定义一个 lambda?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决我应该如何在我的方法的参数中定义一个 lambda??

开发过程中遇到我应该如何在我的方法的参数中定义一个 lambda?的问题如何解决?下面主要结合日常开发的经验,给出你关于我应该如何在我的方法的参数中定义一个 lambda?的解决方法建议,希望对你解决我应该如何在我的方法的参数中定义一个 lambda?有所启发或帮助;

我有以下自定义 Runnable:

public function job_types() // parent 
{
    // one job only belongs to one type of job
    return $this->belongsToMany('App\jobTypes');
}

我想这样运行它:

public function assignJob($ID)
{
    $jobType = \App\JobTypes::withTrashed()->find($ID);
    $jobs = $jobType->jobs;

    return vIEw('job-types.assign-job',compact(['jobType','jobs']));
}

但我不知道我应该如何定义 RandomSum 中接受 lambda 的方法 <label for="name">Job</label> <SELEct SELEcted="SELEcted" multiple class="form-control {{ $errors->first('jobs') ? "is-invalID" : "" }}" name="jobs[]" ID="jobs" class="jobs"></SELEct> <div class="invalID-FeedBACk"> {{ $errors->first('jobs') }} </div>

解决方法

您展示的 lambda 的一种可能的目标类型Consumer。定义一个接受 setCallBACk 的方法 Consumer<Float> 并将其存储为实例变量。然后在 for 循环之后调用它。

class RandomSum implements Runnable {
    Consumer<Float> callBACk;
   
    public void setCallBACk(Consumer<Float> callBACk) {
        this.callBACk = callBACk;
    }

    public void run() {
        float sum = 0;
        for(int i = 0; i<1000000;i++){
            sum += Math.random();
        } 
        callBACk.accept(sum);
    } 
}

来电方

RandomSum s =new Randomsum();
s.setCallBACk((sum)->{
    System.out.println(sum);
});

或者使用方法引用,

s.setCallBACk(System.out::println);

最好可以在构造函数中传递回调。

,

您可以在 retrieveCallBACk 中定义 RandomSum,如下所示:

public void retrieveCallBACk(FeedBACkHandler feedBACkHandler) {
    int sum = ...; // Get the value however you like.
    feedBACkHandler.handleFeedBACk(sum);
}

然后将这个 FeedBACkHandler 接口定义为:

public interface FeedBACkHandler {
    void handleFeedBACk(int sum);
}

本质上,当您将 lambda (sum) -> {...} 传递给 retrieveCallBACk会发生什么:

retrieveCallBACk(new FeedBACkHandler() {
    @Override
    public void handleFeedBACk(int sum) {
        ...
    }
});

大佬总结

以上是大佬教程为你收集整理的我应该如何在我的方法的参数中定义一个 lambda?全部内容,希望文章能够帮你解决我应该如何在我的方法的参数中定义一个 lambda?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:lambda?