【发布时间】:2015-03-11 09:21:15
【问题描述】:
对于给定外部类实例的内部类,StaticClass::new 是否有等价物?
编辑:
即如果我有
class Outer {
class Inner {
}
}
我可以在旧 Java 中使用 Outer o = new Outer(); Inner i = o.new Inner()。如何将o.new Inner() 表达为函数引用。
【问题讨论】:
-
您能否添加一些代码,即该类的具体定义位置以及您想在何处使用它?
-
有趣的是,在JLS on method references 的示例部分中,有一个示例:
Outer.Inner::new但这不会编译...它们可能意味着Outer.StaticNested::new... -
不是方法参考,但你可以使用像
() -> outer.new Inner()这样的lambda -
@assylias:
Outer.Inner::new如果你在 insideOuter,即如果Outer的实例在范围内,则确实有效。当然,你可以只写Inner::new然后……
标签: java lambda java-8 java-stream