GraphQL QueryResolver出现Process类歧义错误如何指定用java.lang.Process
问题原因
java.lang包下的类属于Java默认导入的范畴,无需显式编写import语句即可直接用短类名调用。你当前的QueryResolver类中同时导入了自定义的com.xxx.Process类,编译器遇到Process短类名时无法匹配到唯一的类,就会抛出歧义报错。
修复方案
直接在需要使用JDK原生Process类的位置写全限定类名java.lang.Process,即可绕过import的匹配规则,显式指定调用的类。
针对你提供的方法代码,分两种常见场景修复:
- 方法返回值为
List<Process>类型时,修复后代码:
@javax.validation.constraints.NotNull java.util.List<java.lang.Process> Process(ProcessInput input, graphql.schema.DataFetchingEnvironment env) throws Exception;
- 方法返回值为单个
Process类型时,修复后代码:
@javax.validation.constraints.NotNull java.lang.Process Process(ProcessInput input, graphql.schema.DataFetchingEnvironment env) throws Exception;
额外优化建议:如果你当前类中绝大多数场景都用JDK原生的
Process,自定义com.xxx.Process使用频率很低,可以直接移除import com.xxx.Process;语句,后续用到自定义Process类的位置统一写全限定类名即可,这样其他位置用Process短类名时会默认匹配到java.lang.Process,不用每次都写全类名。
内容的提问来源于stack exchange,提问作者raji
相关产品推荐
相关产品推荐

