Java中->是什么意思
我们先看⼀下书上的例⼦
EventQueue.invokeLater(() -> {
JFrame frame = new ImageViewerFrame();
frame.setTitle("ImageViewer");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
});
// 上⾯那⼀段可以看成如下:
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(Event -> {
int result = chooser.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION){
String name = SelectedFile().getPath();
label.setIcon(new ImageIcon(name));
}
});
// 我们可以将lambda表达式转成匿名内部类的样⼦
openItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int result = chooser.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION){
String name = SelectedFile().getPath();
label.setIcon(new ImageIcon(name));
}
}
});
Java8 特性:
1、在接⼝中新增了default⽅法和static⽅法,这两种⽅法可以有⽅法体 (*default⽅法可以被⼦接⼝继承亦可被其实现类所调
⽤,default⽅法被继承时,可以被⼦接⼝覆写;接⼝中的static⽅法不能被继承,也不能被实现类调⽤,只能被⾃⾝调⽤)html frame
2、Lambda表达式(可以看成是匿名内部类,->表⽰连接符;{}内部是⽅法体;<;实例>::<;实例⽅法名>返回函数式接⼝,例如Collections::sort)
3、函数式接⼝(如果⼀个接⼝只有⼀个抽象⽅法)可以使⽤Lambda表达式,lambda表达式会被匹配到这个抽象⽅法上
4、Lambda作⽤域(可以直接访问标记了final的外层局部变量,实例的字段以及静态变量,lambda内部对于实例的字段以及静态变量是即可读⼜可写)
5、访问接⼝的⽅法:Predicate接⼝(有⼀个参数并且返回⼀个结果,并附带了⼀些可以和其他函数组合的默认⽅法);Comparator 在Java 8在此之上添加了多种默认⽅法
6、Optional 接⼝(防⽌NullPointerException异常的辅助类型)
7、Date api(Clock类提供了访问当前⽇期和时间的⽅法,Clock是时区敏感的,可以⽤来取代 System.currentTimeMillis() 来获取当前的微秒数;LocalTime 本地时间类LocalDate 本地⽇期类 )
8、Annotation 注解,8中⽀持多重注解了
原⽂链接:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。