Java方法引用主要有四种形式,它们分别是:
- 静态方法引用:使用类名来引用静态方法。这种引用方式适用于不依赖于对象状态的方法,因为它们可以在没有实例化的情况下被调用。静态方法引用的语法是
ClassName::staticMethodName
。 - 特定对象的实例方法引用:使用特定对象的引用来调用其实例方法。这种引用方式适用于依赖于对象状态的方法。实例方法引用的语法是
instance::instanceMethodName
。 - 特定类型的任意对象的实例方法引用:使用特定类型的引用来调用该类型任意对象的实例方法。这种引用方式适用于不依赖于对象状态的方法,因为它们可以在没有实例化的情况下被调用。特定类型的任意对象的实例方法引用的语法是
ClassName::instanceMethodName
。 - 构造方法引用:使用类名来引用类的构造方法。这种引用方式适用于创建类的实例。构造方法引用的语法是
ClassName::new
。
需要注意的是,方法引用只能用于函数式接口,因为函数式接口只有一个抽象方法,而方法引用实际上是对该抽象方法的引用。在使用方法引用时,需要确保引用的方法与函数式接口的抽象方法具有相同的签名。