[英]Java Compiler error with multiple generics type
我有这样的界面:
public interface GenericWSEndpoint<T1,T2> {
public void call(String url,String operationName, T1 requestObject, T2 responseObject,long timeout) throws Exception;
}
当我尝试用这个来定义一个对象时,它给出了
org.apache.maven.BuildFailureException:编译失败:不兼容的类型
对象定义:
private static GenericWSEndpoint<BulkCheckBlockageRequest,BulkCheckBlockageResponse> endpoint=GenericWsEndpointFactory.createSpecificEndpoint(WSTypes.CXF);
和工厂代码:
public class GenericWsEndpointFactory{
public static <T1,T2> GenericWSEndpoint createSpecificEndpoint(WSTypes type){
switch (type) {
case CXF:
return new CXFWsEndPoint<T1,T2>();
}
return null;
}
}
和CXFWsEndPoint(没有具体定义的构造函数):
public class CXFWsEndPoint<T1,T2> implements GenericWSEndpoint<T1, T2>{
.
.
}
我已经检查了有关此问题的答案,但它们与递归泛型等定义有关
有任何想法吗?
编辑:例外:
[INFO]编译失败ResponseManager \\ src \\ main \\ java \\ com \\ x \\ resman \\ util \\ WebServiceUtil.java:[57,142]不兼容的类型; 没有类型变量T1,T2的实例存在,以便com.x.rbm.ws.service.GenericWSEndpoint符合com.x.rbm.ws.service.GenericWSEndpoint found:com.x.rbm.ws .service.GenericWSEndpoint必需:
com.x.rbm.ws.service.GenericWSEndpointequest,com.x.resman.model.checkblockage.BulkCheckBlockageResponse>
尝试使用以下代码:
public static <T1, T2> GenericWSEndpoint<T1, T2> createSpecificEndpoint() {
代替
public static <T1, T2> GenericWSEndpoint createSpecificEndpoint() {
您是否在Maven POM文件中指定了Java源代码版本? 目前,默认情况下Maven使用1.5。 你可能需要更新的东西。 您在我们的IDE中使用的是哪个版本?
相关的Maven配置是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.