java8新特性

来源:互联网 发布:手机网页源码怎样测试 编辑:程序博客网 时间:2024/06/05 01:07

1,Lambda表达式(有点意思的新特性)

Arrays.asList("a","b").forEach(e->System.out.println(e))

Arrays.asList( "a", "b", "d" ).sort( ( e1, e2 ) -> {    int result = e1.compareTo( e2 );    return result;} );

一些e.g

//线程        //new Thread(() -> System.out.println("Hello World!")).start();        //遍历List        //List list=Arrays.asList("Mike","Tom","Hellen");        //list.forEach(System.out::println);        //list.forEach(e->{System.out.println(e);});        //Predicate        /*        Predicate<String> predicate=(str)->str.length()>3;        for(Object n: list)            if (predicate.test(n.toString())) {                System.out.println(n + " ");            }            */        //排序        List list=Arrays.asList(4,2,8);        list.sort( ( e1, e2 ) -> {            int result = e1.toString().compareTo( e2.toString() );            return result;        } );        list.forEach(System.out::println);        //获取集合里面的最大最小总和和平均值        IntSummaryStatistics stats=list.stream().mapToInt((x)-> (int) x).summaryStatistics();        System.out.println("Highest prime number in List : " + stats.getMax());        System.out.println("Lowest prime number in List : " + stats.getMin());        System.out.println("Sum of all prime numbers : " + stats.getSum());        System.out.println("Average of all prime numbers : " + stats.getAverage());


函数式接口

Java 8 提供了一个特殊的注解@FunctionalInterface

@FunctionalInterfacepublic interface Functional {    void method();}
这里有个新奇的

System.out::println
这个跟System.out.println()不同
 list.forEach(System.out::println);--------> list.forEach(e -> System.out.println(e));等价的

Lambda表达式不允许在里面修改外域的值比如:

List<Integer> primes = Arrays.asList(new Integer[]{2, 3,5,7});        int factor = 2;        primes.forEach(element -> { factor++ });
报错!!!

2.重复注解

旧版java是注解池,在括号里面配置

另外反射api提供了getAnnotationsByType(),可以获取注解里面相应的值

3.java8官方类库

可自行百度下载相关资料



原创粉丝点击