简单的 lambda 表达式求助

2021-03-26 18:10:05 +08:00
 lithium148
//匿名内部类:
Runnable r = new Runnable() {
            @Override
            public void run() {
                
            }
        };
        
        
//改写成 lambda 表达式:
Runnable r = new Runnable(()->{});

无法通过编译,提示“'Runnable' is abstract; cannot be instantiated”


请问问题出在哪,非常感谢~
1114 次点击
所在节点    问与答
5 条回复
nthin0
2021-03-26 18:11:37 +08:00
Runnable r = () -> {};
lithium148
2021-03-26 18:48:12 +08:00
@nthin0 谢谢大佬,但是为啥不用写 new runnable()啊
ninjachen
2021-03-26 19:32:11 +08:00
因为它不是 lambda 表达式
brust
2021-03-27 14:30:15 +08:00
Runnable r = ()->{};
Thread t = new Thread(new Runnable() {
@Override
public void run() {

}
});
Thread t = new Thread(()->{});
uselessVisitor
2021-03-29 10:41:25 +08:00
不用加 new 了吧 ()->{}就是 new 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/765506

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX