2023-03-13 14:30

Java中的 ::(双冒号) 运算符详解

少尉

JavaEE

(560)

(0)

收藏

双冒号(::)运算符在Java 8中被用作方法引用(method reference),方法引用是与lambda表达式相关的一个重要特性。

官方文档中将双冒号的用法分为了以下几类:

1、静态方法引用(static method)语法:classname::methodname 例如:Person::getAge

2、对象的实例方法引用语法:instancename::methodname 例如:System.out::println

3、对象的超类方法引用语法: super::methodname

4、类构造器引用语法: classname::new 例如:ArrayList::new

5、数组构造器引用语法: typename[]::new 例如: String[]:new


下面是几个具体的示例:

1、静态方法语法使用例子:

public class Demo {
    public void test() {
        List<String> list = Arrays.asList("aaaa", "bbbb", "cccc");
        //静态方法语法ClassName::methodName
        list.forEach(Demo::print);
    }
    public static void print(String content){
        System.out.println(content);
    }
}

2、类实例方法语法使用例子:

public class Demo {
    public void test() {
        List<String> list = Arrays.asList("aaaa", "bbbb", "cccc");
        //对象实例语法instanceRef::methodName
        list.forEach(new Demo()::print);
    }
    public void print(String content){
        System.out.println(content);
    }
}

3、类构造器语法使用例子:

public class Example {
    public void test() {
        InterfaceExample com =  Example::new;
        Example bean = com.create();
        System.out.println(bean);
    }
}
interface InterfaceExample{
    Example create();
}


0条评论

点击登录参与评论