Java 本地静态方法引用速记语法



有没有一种速记方法可以获取对本地静态方法的方法引用,就像调用方法时删除this关键字或类前缀一样?

显而易见的事情是使用::myStaticMethod但这似乎没有编译:

class MyClass {
   static void myStaticMethod () {}
   static Runnable runner = ::myStaticMethod; // doesn't compile
      // requires MyClass prefix despite being in the same class
}

唉,没有捷径可走。 根据 JLS (15.13(,方法引用的语法如下:

MethodReference:
    ExpressionName :: [TypeArguments] Identifier 
    ReferenceType :: [TypeArguments] Identifier 
    Primary :: [TypeArguments] Identifier 
    super :: [TypeArguments] Identifier 
    TypeName . super :: [TypeArguments] Identifier 
    ClassType :: [TypeArguments] new 
    ArrayType :: new

在所有情况下,::之前都有一些东西.

在关于方法引用的 Java 教程中,也不太正式地讨论了此语法。

最新更新