Java8-3-方法引用与构造器引用
方法引用
使用 lambda 表达式时,如果方法中 只有一个方法的调用 话(包括构造方法),可以使用方法引用进一步简化代码, 使用操作符 ::
将 方法名和对象或类的名字分隔 开来。
主要使用情况:
- 对象
::
实例方法 - 类
::
静态方法 - 类
::
实例方法
引用对象的实例方法
基本语法
1 | 对象名::方法名 |
使用前提
如果在重写方法时,方法体中 只有一行代码,并且该代码是 调用某对象的成员方法,并且要把重写的 抽象方法中所有的参数按照顺序传入该成员方法中,使用引用对象的实例方法
1 | // 使用lambda表达式 |
引用类的静态方法
基本语法
1 | 类名::方法名 |
使用前提
如果在重写方法时,方法体中只有一行代码,并且该代码 调用某个类的静态方法,并且把重写的 抽象方法中所有的参数都按照顺序传入静态方法中,此时可以引用类的静态方法。如果重写的方法没有参数,调用的方法也是没有参数的也符合以上规则 ,如下所示:
1 | // 使用lambda表达式 |
引用类的实例方法
基本语法
1 | 类名::方法名 |
使用前提
如果在重写方法时,方法体中 只有一行代码,并且该代码 调用第一个参数的成员方法,并且把 重写的抽象方法中剩余的所有参数都按照顺序传入到该成员方法中,可以使用类的实例方法。
1 | // 使用lambda表达式 |
构造器引用
如果方法中的 一行代码 是构造器的话可以使用构造器引用
基本语法
1 | 类名::new |
使用前提
如果在重写方法时,方法体中 只有一行代码,并且该代码 调用某类的构造器方法,并且把 重写的抽象方法中所有的参数按照顺序传入构造器中,可以使用构造器引用
1 | // 使用lambda表达式 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment