() -> {
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