返回顶部

收藏

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

更多

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

标签:java8,java

收藏

0人收藏

支持

1

反对

0

相关聚客文章
  1. 博主 发表 2014-08-27 06:43:00 Java新特性
  2. 小村长 发表 2015-12-18 10:36:50 Java 8 新特新
  3. nkxiaochuan 发表 2016-07-06 15:43:00 《JAVA8开发指南》使用流式操作
  4. 博主 发表 2015-05-21 20:34:35 实现JDK没有提供的AtomicFloat
  5. 王爵 发表 2015-09-18 22:17:28 Java8简明指南
  6. 简直 发表 2017-03-22 14:20:47 现代化的缓存设计方案
  7. SingleX 发表 2017-06-13 08:52:12 Oracle JDK 1.8 文件结构说明
  8. 小村长 发表 2015-12-18 10:36:50 Java 8 新特性
  9. cricode 发表 2015-11-28 07:40:27 Java8 简明教程
  10. 博主 发表 2016-06-23 07:53:47 JAVA8实用范例
  11. gonwan 发表 2017-09-04 07:17:16 Streaming MySQL Results Using Java 8 Streams
  12. gonwan 发表 2017-09-04 07:17:16 Streaming MySQL Results Using Java 8 Streams

发表评论