论坛首页 编程语言技术论坛

JDK 1.8 预览版 Lambda语法分析

浏览 12802 次
精华帖 (0) :: 良好帖 (11) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-03-12  
其实我觉得目前最需要的还是'''字符串啊,xtend2的这个很不错
0 请登录后投票
   发表时间:2012-03-12   最后修改:2012-03-12
Xorcerer 写道
groovyzhou 写道
Runnable r = () -> { System.out.println("hello world"); }; 
语法真够恶心,无非就是匿名内部类换了一种写法而已,搞得不伦不类的,有意思吗

呵呵,至少它可以节省时间,如果你不是以打字为乐的话。


针对输入参数类型的问题,定义参数的类型应该不会省,目前看是lambda代码块是编译成方法的,所以也是按照传统方法的路子走。从项目的问题库里也没提到省略输入参数的类型定义。

至于和匿名类的区别很明显,文章里确切说了,在预览版编译成内部类仅仅是暂时的,以文中的例子来说,最终将没有LambdaTest$2.class这个类,取而代之是在LambdaTest.class中,编译成invokedynamic指令,而不是invokespecial,至于是不是会引入其它变化就不清楚了。
0 请登录后投票
   发表时间:2012-03-13  
wupuyuan 写道
Xorcerer 写道
groovyzhou 写道
Runnable r = () -> { System.out.println("hello world"); }; 
语法真够恶心,无非就是匿名内部类换了一种写法而已,搞得不伦不类的,有意思吗

呵呵,至少它可以节省时间,如果你不是以打字为乐的话。


针对输入参数类型的问题,定义参数的类型应该不会省,目前看是lambda代码块是编译成方法的,所以也是按照传统方法的路子走。从项目的问题库里也没提到省略输入参数的类型定义。

至于和匿名类的区别很明显,文章里确切说了,在预览版编译成内部类仅仅是暂时的,以文中的例子来说,最终将没有LambdaTest$2.class这个类,取而代之是在LambdaTest.class中,编译成invokedynamic指令,而不是invokespecial,至于是不是会引入其它变化就不清楚了。

请问,不用内部类而使用invokedynamic指令的好处在什么地方?这个我一直有疑问。
0 请登录后投票
   发表时间:2012-03-13  
Xorcerer 写道
wupuyuan 写道
Xorcerer 写道
groovyzhou 写道
Runnable r = () -> { System.out.println("hello world"); }; 
语法真够恶心,无非就是匿名内部类换了一种写法而已,搞得不伦不类的,有意思吗

呵呵,至少它可以节省时间,如果你不是以打字为乐的话。


针对输入参数类型的问题,定义参数的类型应该不会省,目前看是lambda代码块是编译成方法的,所以也是按照传统方法的路子走。从项目的问题库里也没提到省略输入参数的类型定义。

至于和匿名类的区别很明显,文章里确切说了,在预览版编译成内部类仅仅是暂时的,以文中的例子来说,最终将没有LambdaTest$2.class这个类,取而代之是在LambdaTest.class中,编译成invokedynamic指令,而不是invokespecial,至于是不是会引入其它变化就不清楚了。

请问,不用内部类而使用invokedynamic指令的好处在什么地方?这个我一直有疑问。

你好,我引用周志明的说明下吧。不过说明篇幅也不太短,我在原文里添加了,可以在文章里搜索“引用周志明的说明”看。
0 请登录后投票
   发表时间:2012-03-14  
以后看java代码都不一定能看懂了!
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics