好奇做个调查,有多少Javaer知道Java怎么写lambda表达式的

张亦俊 发布于 2015/04/06 16:53
阅读 556
收藏 1

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class AnonymousListener {
	public static void main(String[] args) {
		JButton anonBtn = new JButton("Java Button");
		
		//actionlistener using anonymous class
		anonBtn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ae) {
				System.out.println("Anonymous Click!");
			}
		});
		
		//actionlistener using lambda expression		
		anonBtn.addActionListener(e -> { System.out.println("Lambda Click!");
		});

		JFrame frame = new JFrame("Lambda Expression Sample");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.add(anonBtn, BorderLayout.CENTER);
		frame.pack();
		frame.setVisible(true);
	}
}



RT。代码是从http://javapapers.com/core-java/lambda-expression-in-java-8/这里复制过来的,因为没看到什么中文的资料。

因为OSC的Javaer比较多,我就调查一下。

加载中
0
kidbei
kidbei
我就不会
0
pantrick
pantrick
这是正则表达式?
张亦俊
张亦俊
中间那段e -> { ... }就是吧,虽然扣概念的话应该叫做lambda块
0
雨翔河
雨翔河
说好是正则表达式,怎么是swing还带监听按钮的。
0
张亦俊
张亦俊
给楼上三位统一认错道歉,我想写lambda表达式的,一头昏给写错了,占用诸位时间,十分抱歉。
0
公孙二狗
公孙二狗

虽然学了,但是 JDK8 使用的还太少,不实用。

0
eechen
eechen
匿名函数(lambda表达式):

JavaScript:
var n = 60;
var foo = (function(x) {
     return x * n;
});
console.log(foo(3));
//输出180

PHP:
$n = 60;
$foo = (function($x) use ($n) {
     return $x * $n;
});
echo $foo(3);
//输出180

0
仪山湖
仪山湖
lambda是一个约定或者说规范,c++ 11标准/Java8都对此有支持,Scala语法中也能找到它的影子
仪山湖
仪山湖
@eechen lambda一定程度上减轻了函数引用在工程代码组织上复杂度
eechen
eechen
C大侠淡定地表示这种语法糖根本吸引不了他。
0
iuKa
iuKa
android可以用lambda了,但基本不用,因为代码是要给别人能看懂的。。。
0
ljj91
ljj91
其实lambda还算挺好理解的。
0
12叔
12叔
服务器上不是 jdk8  写不了
返回顶部
顶部