具有多个泛型类型的Java编译器错误
我有这样一个界面:具有多个泛型类型的Java编译器错误,java,generics,compiler-construction,Java,Generics,Compiler Construction,我有这样一个界面: public interface GenericWSEndpoint<T1,T2> { public void call(String url,String operationName, T1 requestObject, T2 responseObject,long timeout) throws Exception; } 公共接口GenericWSEndpoint{ 公共void调用(字符串url、字符串操作名、T1请求对象、T2响应对象、长超时
public interface GenericWSEndpoint<T1,T2> {
public void call(String url,String operationName, T1 requestObject, T2 responseObject,long timeout) throws Exception;
}
公共接口GenericWSEndpoint{
公共void调用(字符串url、字符串操作名、T1请求对象、T2响应对象、长超时)引发异常;
}
当我试图用它定义一个对象时,它给出
org.apache.maven.BuildFailureException:编译失败:
不兼容类型
对象定义:
private static GenericWSEndpoint<BulkCheckBlockageRequest,BulkCheckBlockageResponse> endpoint=GenericWsEndpointFactory.createSpecificEndpoint(WSTypes.CXF);
private static GenericWSEndpoint=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;
}
}
公共类GenericWsEndpointFactory{
公共静态GenericWSEndpoint createSpecificEndpoint(WSTypes类型){
开关(类型){
案例CXF:
返回新的CXFWsEndPoint();
}
返回null;
}
}
和CXFWsEndPoint(没有具体定义构造函数):
公共类CXFWsEndPoint实现GenericWSEndpoint{
.
.
}
我已经检查了关于这个问题的答案,但是它们与递归泛型之类的定义有关
有什么想法吗
编辑:例外:
[信息]编译失败
ResponseManager\src\main\java\com\x\resman\util\WebServiceUtil.java:[57142]
不相容类型;不存在类型变量T1、T2的实例,因此
com.x.rbm.ws.service.GenericWSEndpoint符合
com.x.rbm.ws.service.GenericWSEndpoint
找到:com.x.rbm.ws.service.GenericWSEndpoint必需:
com.x.rbm.ws.service.genericWSEndpointRequest,com.x.resman.model.CheckBlocking.BulkCheckBlockageResponse>
您是否在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>
org.apache.maven.plugins
maven编译器插件
1.7
1.7
希望这有帮助。请尝试以下代码:
public static <T1, T2> GenericWSEndpoint<T1, T2> createSpecificEndpoint() {
公共静态GenericWSEndpoint createSpecificEndpoint(){
而不是
public static <T1, T2> GenericWSEndpoint createSpecificEndpoint() {
公共静态GenericWSEndpoint createSpecificEndpoint(){
是否有关于异常的更多信息?此接口很好。错误必须是某些错误,否则请检查右侧类型,类型是GenericWsEndpointFactory.createSpecificEndpoint(WSTypes.CXF)
?向我们展示CXFWsEndPoint
声明我在maven中有1.6版本,它与泛型兼容。这也不是maven的问题。您正在使用哪种IDE(如果有的话)?您应该在这一行得到关于此类问题的警告(可能是可选的)。是的,但如果它将给出编译器错误,则不应作为警告。可能Eclipse配置不正确,应将其显示为错误(可以配置)。如果您解决了这个问题,请告诉我。
public static <T1, T2> GenericWSEndpoint createSpecificEndpoint() {