java 8 新增特性之 lambda表达式

() -> {
JFrame frame = new ImageViewerFrame();
frame.setTitle("ImageViewer");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

}
Event -> {
int result = chooser.showOpenDialog(null);

if (result == JFileChooser.APPROVE_OPTION){
String name = chooser.getSelectedFile().getPath();
label.setIcon(new ImageIcon(name));

}

我们在看Java核心编程时候遇到这代码,那么->是什么意思呢

->是lambda表达式,就是匿名函数。

上面两段代码可以理解为:


EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame frame = new ImageViewerFrame();
frame.setTitle("ImageViewer");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});

 

openItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int result = chooser.showOpenDialog(null);

if (result == JFileChooser.APPROVE_OPTION){
String name = chooser.getSelectedFile().getPath();
label.setIcon(new ImageIcon(name));
}
}
});
这是Java8里新加入的特性lambda表达式,相当于无名称的函数,
最简单的例子是 Collections.sort(list, (x, y) -> y - x); 其中

(x, y) -> y - x

是一个lambda表达式,输入两个参数x, y,返回值 y-  x。“->”起分隔作用。,Java会自动翻译

原文链接:https://blog.csdn.net/qq_38078822/article/details/80836539

 

posted @ 2020-02-24 15:53  独步133  阅读(200)  评论(0编辑  收藏  举报