在执行导入静态时调用静态类型方法的语法是什么?

Ari*_*dam 4 java syntax static static-import

目前我在做

import org.easymock.EasyMock;
...
foo.bar(EasyMock.<List<String>>anyObject());
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法避免提及课程EasyMock.我有这样的想法:

import static org.easymock.EasyMock.anyObject;
...
foo.bar(anyObject<List<String>>());
Run Code Online (Sandbox Code Playgroud)

然而,这不编译.还有其他办法吗?

aio*_*obe 6

无法为静态导入的方法提供类型参数(不像您在第一个代码段中那样包含类名).根本没有这样的语法支持它.

请参见Java语言规范中的第15.12节"方法调用表达式 ":

MethodInvocation:
        MethodName ( ArgumentListopt )
        Primary . NonWildTypeArgumentsopt Identifier (ArgumentListopt)
        super . NonWildTypeArgumentsopt Identifier (ArgumentListopt)
        ClassName . super . NonWildTypeArgumentsopt Identifier (ArgumentListopt)
        TypeName . NonWildTypeArguments Identifier (ArgumentListopt)
Run Code Online (Sandbox Code Playgroud)

第一个选项是唯一一个不涉及前一个点的选项,并且该选项不包括提供类型参数的可能性(正如其他选项那样).