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));

java 8 新特新,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。