登录

去注册

登录

注册

去登录

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

获取注册验证码

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

每日一问 | Java中匿名内部类写成 lambda,真的只是语法糖吗?

xiaoyang   2021-01-11 00:00   收藏

我们来看两段代码:

lambda 版本:

public class LambdaTest{

    public static void main(String[] args) {
        Runnable r = ()->{
            System.out.println("hello, lambda");
        };
        r.run();
    }

}

匿名内部类版本:

public class LambdaTest2{

    public static void main(String[] args) {
        Runnable r = new Runnable(){
            @Override
            public void run(){
                System.out.println("hello, lambda");
            }
        };
        r.run();
    }

}

在日常开发过程中,其实我们感受不到两者有什么区别,反正最终运行的结果都是一致的。

那么问题来了,这两个写法究竟有什么区别?仅仅在写法上的不同吗?

注意:本题目针对 Java语言。

删除留言

确认删除留言,会导致相关评论丢失?

取消 确定