Lambda表达式---方法引用

Lambda表达式---方法引用

Java 8中方法也是一种对象,可以通过名字来引用。不过方法引用的唯一用途是支持Lambda的简写,使用方法名称来表示Lambda。不能通过方法引用来获得诸如方法签名的相关信息。

方法引用提供了一个很有用的语义来直接访问类或者实例的已经存在的方法或者构造方法。
方法引用可以通过方法的名字来引用其本身。方法引用是通过::符号(双冒号)来描述的。
它可以用来引用下列类型的方法:

  1. 构造器引用:语法是 Class :: new ,或者 Class<T> :: new,要求构造器方法是没有参数
  2. 静态方法引用:语法是 Class :: static_method ,要求接受一个Class类型的参数
  3. 特定类的任意方法引用:语法是 Class :: method,要求方法是没有参数的
  4. 特定对象的方法引用:它的语法是 instance :: method,要求方法接受一个参数,与3不同的是,3在列表元素上分别调用方法,而4在某个对象上调用方法,将列表元素作为参数传入

源代码:方法引用

public class NewFeaturesTester {
    public static void main(String args[]){
        List names = new ArrayList();

        names.add("Peter");
        names.add("Linda");
        names.add("Smith");
        names.add("Zack");
        names.add("Bob");

        // 通过System.out::println引用了输出的方法
        names.forEach(System.out :: println);
    }
}

运行结果:

Peter
Linda
Smith
Zack
Bob
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容