如何使用一个静态导入的方法引用?

Xeli:

当在Java中使用地图功能我可以做到以下几点:

import com.example.MyClass;

someStream.map(MyClass::myStaticMethod)

但在我的项目中,我们有时会使用静态导入,我怎么能引用myStaticMethod当进口是静态的?

我认为这会工作,但它不会:

import static com.example.MyClass.myStaticMethod;

someStream.map(myStaticMethod); //does not compile

为什么这个不行?上午我“坚持”用的第一个例子,还是有其他的解决方案。

名称:

让我们看一下Java语言规范,相关的部分15.13。方法参考表达式

它列出了以下的方法来创建一个方法引用:

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

请注意,所有的人包括::令牌。

由于参数someStream.map(myStaticMethod)不包括::,它不是一个有效的方法参考。

这表明,你确实需要进口MyClass(也许除了在静态导入,如果这是你的偏好),并参考方法MyClass::myStaticMethod

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

静态导入方法的一个好用例是什么?

静态引用另一个类中的非静态方法

如何修复导入另一个库的库中的“非静态成员函数的无效使用”

PHPUnit:如何测试使用另一个静态类方法的类方法

如何使静态导入的库依赖于CMake中的另一个静态导入的库?

如何从python中的另一个类导入方法或使用该方法?

静态方法-如何从另一个方法调用一个方法?

如何使用静态方法重新实例化一个类?

如何使用Mockito模拟类中的一个静态方法?

如何模拟一个无效的静态方法以使用Powermock引发异常?

如何从React中的另一个静态方法中调用一个静态方法?

如何从同一个类的静态方法中调用非静态方法?

如何使用从另一个包导入的结构

如何仅使用一个函数的导入?

如何在非静态内部类的另一个实例中引用外部类?

PHP如何引用一个类的方法定义?

如何检查两个方法引用是否引用同一个方法?

一个非静态类如何调用另一个非静态类的方法?

如何将一个类从一个静态库弱导入另一个库(Objective-C)

使用上一个静态方法的非静态变量通过一个对象?Java的

如何从另一个类的静态方法更改静态变量的值

如何从 C# 中的另一个方法引用一个类?

有一个静态方法在枚举中使用非静态成员

如何概括一个静态的回合?

如何使用cfc对象的引用从另一个函数调用一个函数?

如何使用AWS API Gateway从另一个模型引用一个模型

如何使用另一个类从一个类中引用属性

从Rust中同一类的另一个静态方法中引用静态方法的最佳方法是什么?

Java的8 - 我怎么声明的方法引用一个未绑定的非静态方法返回void