java8 新操作符::做方法引用

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

java8中引入了一个新的操作符::, 是两个英文半角的冒号, 这个操作符用来引用方法, 其本质也是对接口的一种重写。

请看下面的实例:

import java.util.ArrayList;
import java.util.List;

/**
 * Created by outofmemory.cn on 2015/11/25.
 */
public class AppMethodReference {
    public static void main(String[] args) {
        List<String> names = new ArrayList<String>();
        names.add("Bush");
        names.add("Tom");
        names.add("Jim");

        System.out.println("print with instance method");
        names.forEach(System.out::println);

        System.out.println("print with instance method");
        AppMethodReference appMethodReference = new AppMethodReference();
        names.forEach(appMethodReference::printSomething);

        System.out.println("print with static method");
        names.forEach(AppMethodReference::printStatic);
    }

    private void printSomething(String str) {
        System.out.println(str);
    }

    private static void printStatic(String input) {
        System.out.println(input);
    }
}

::操作符可以引用实例方法,也可以引用静态方法, 引用实例时::前面是实例, 引用静态方法时::前面是类。 上述方法输出内容如下:

print with instance method
Bush
Tom
Jim
print with instance method
Bush
Tom
Jim
print with static method
Bush
Tom
Jim

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:MemcachedHelper工具类

下一篇:java Velocity 的宏定义实例