java 8 新特新
今天2014年3月20日,java8 正式版发布。java 8 的新特新,翻译自:http://winterbe.com/posts/2014/03/16/java-8-tutorial/
1. Default Methods for Interfaces
接口中可以使用defailt关键字定义非抽象方法。
interface Formula { double calculate(int a); default double sqrt(int a) { return Math.sqrt(a); } }
实现类只需要实现抽象方法,接口中default方法可以直接使用。
Formula formula = new Formula() { @Override public double calculate(int a) { return sqrt(a * 100); } }; formula.calculate(100); // 100.0 formula.sqrt(16); // 4.0
2. Lambda expressions
没有使用lambda表达式的时候,对字符串排序如下:
List<String> names = Arrays.asList("peter", "anna", "mike", "xenia"); Collections.sort(names, new Comparator<String>() { @Override public int compare(String a, String b) { return b.compareTo(a); } });
使用lambda不用创建匿名内部类,表达式可以大幅度减少代码量
Collections.sort(names, (String a, String b) -> { return b.compareTo(a); });
更简洁的一种表达方式如下,在方法体只有一行时,可以省略{}和return:
Collections.sort(names, (String a, String b) -> b.compareTo(a));
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。