Lambda 对匿名类构造函数的方法引用
是否可以获取匿名类的构造函数的引用 例如:Lambda 对匿名类构造函数的方法引用,lambda,java-8,method-reference,Lambda,Java 8,Method Reference,是否可以获取匿名类的构造函数的引用 例如: void someMethod(Function<String, SomeInterface> factory) 或 在第二种情况下,我使用了lambda表达式,但我需要一个函数引用。不,您不能 从: 有四种方法参考: 对包含Class::staticMethodName的静态方法的引用 对特定对象的实例方法的引用包含object::instanceMethodName 对特定类型的任意对象的实例方法的引用ContainingType:
void someMethod(Function<String, SomeInterface> factory)
或
在第二种情况下,我使用了lambda表达式,但我需要一个函数引用。不,您不能
从:
有四种方法参考:
- 对包含Class::staticMethodName的静态方法的引用
- 对特定对象的实例方法的引用
包含object::instanceMethodName
- 对特定类型的任意对象的实例方法的引用
ContainingType::methodName
- 对构造函数的引用
ClassName::new
如果确实需要方法引用,可以编写另一个方法并引用它:
SomeInterface createSomeInterface(String str) {
return new SomeInterface(){...};
}
someMethod(this::createSomeInterface);
不,你不能
从:
有四种方法参考:
- 对包含Class::staticMethodName的静态方法的引用
- 对特定对象的实例方法的引用
包含object::instanceMethodName
- 对特定类型的任意对象的实例方法的引用
ContainingType::methodName
- 对构造函数的引用
ClassName::new
如果确实需要方法引用,可以编写另一个方法并引用它:
SomeInterface createSomeInterface(String str) {
return new SomeInterface(){...};
}
someMethod(this::createSomeInterface);
不,你不能
从:
有四种方法参考:
- 对包含Class::staticMethodName的静态方法的引用
- 对特定对象的实例方法的引用
包含object::instanceMethodName
- 对特定类型的任意对象的实例方法的引用
ContainingType::methodName
- 对构造函数的引用
ClassName::new
如果确实需要方法引用,可以编写另一个方法并引用它:
SomeInterface createSomeInterface(String str) {
return new SomeInterface(){...};
}
someMethod(this::createSomeInterface);
不,你不能
从:
有四种方法参考:
- 对包含Class::staticMethodName的静态方法的引用
- 对特定对象的实例方法的引用
包含object::instanceMethodName
- 对特定类型的任意对象的实例方法的引用
ContainingType::methodName
- 对构造函数的引用
ClassName::new
如果确实需要方法引用,可以编写另一个方法并引用它:
SomeInterface createSomeInterface(String str) {
return new SomeInterface(){...};
}
someMethod(this::createSomeInterface);