Ingsuifon 2020-07-27 17:56 采纳率: 0%
浏览 77

关于lambda表达式中出现的变量

public class streamDemo {
    //定一个方法,方法的参数传递Supplier,泛型使用Integer
    public static int getMax(Supplier<Integer> sup){
        return sup.get();
    }
    public static void main(String[] args) {
        int[] arr = {2, 3, 4, 52, 333, 23};
        //调用getMax方法,参数传递Lambda
        int maxNum = getMax(()->{
        //计算数组的最大值
            int max = arr[0];
            for(int i : arr){
                if(i>max){
                    max = i;
                }
            }
            return max;
        });
        System.out.println(maxNum);
    }
}

在lambda中,使用了main方法中的局部变量,但是在调用这个getMax方法时,又是如何能够访问到main中的变量的呢?

  • 写回答

2条回答 默认 最新

  • 笑看烟雨红尘 2020-07-28 15:01
    关注

    返回值当参数传进去吧

    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀