java编程笔记

JAVA 8 双冒号'::' 关键字的用法

2019-05-03  本文已影响0人  爱宝宝n

Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。
大家一定很少用到java8中的双冒号:“::”;双冒号是java8中Lambda表达式的一种表达方式,方法名的后面没有括号“()”,下面简单介绍下它的用法:
先举几个例子大家 看下:
例1.输出十个随机数:
一般方法

 Random random = new Random();
        for (int i =0;i<10;i++){
            System.out.println(random.nextInt());
        }

使用::随机输出十个随机数:

Random random = new Random();
random.ints().limit(10).forEach(System.out::println);

例2.循环输出数组:
一般方法

    public static void main(String[] args) {
        List<String> a1 = Arrays.asList("a", "b", "c");
        for (String a : a1) {
            printValur(a);
        }
        a1.forEach(x -> MainTest.printValur(x));
        
    }

    public static void printValur(String str) {
        System.out.println("print value : " + str);
    }

使用使用::

    public static void main(String[] args) {
        List<String> a1 = Arrays.asList("a", "b", "c");
        a1.forEach(MainTest::printValur);
        Consumer<String> consumer = MainTest::printValur;
        a1.forEach(x -> consumer.accept(x));
    }

    public static void printValur(String str) {
        System.out.println("print value : " + str);
    }

上上面例子中,我可以看书使用::的代码更加的简介好看,
其实呢,双冒号就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下,双冒号运算就是Java中的方法引用;
Java 8 中我们可以通过 :: 关键字来访问类的构造方法,对象方法,静态方法。
例如:

表达式:

person ->person.getAge();

可以替换为

Person::getAge

表达式:

()-> new HashMap<>();

可以替换为

HashMap::new

结语:
双冒号,简介方便,易于书写且好看,建议在能使用的地方都使用哦,慢慢就可以熟悉了。

上一篇 下一篇

猜你喜欢

热点阅读