Java泛型-使用具有相同类名的类型用两个泛型类型实现方法

Java泛型-使用具有相同类名的类型用两个泛型类型实现方法,java,generics,Java,Generics,我面临以下问题。由于版本控制的原因,我需要将一个对象转换为另一个使用相同类名但不同包的对象。我使用一个接口和一个实现类,如下所示 //interface class public interface SampleConverter { <T,S> T convert(S type); } //concrete class import com.test.v1.A public class TestConverter implements S

我面临以下问题。由于版本控制的原因,我需要将一个对象转换为另一个使用相同类名但不同包的对象。我使用一个接口和一个实现类,如下所示

//interface class
     public interface SampleConverter {
          <T,S> T convert(S type);
    }



//concrete class
import com.test.v1.A
public class TestConverter implements SampleConverter {
    <A,com.test.v2.A> A convert(com.test.v2.A type) { // compile time error
        ....
   }
}
//接口类
公共接口采样转换器{
T转换(S型);
}
//混凝土类
导入com.test.v1.A
公共类TestConverter实现SampleConverter{
转换(com.test.v2.A类型){//编译时错误
....
}
}

但是当我在菱形操作符中使用类的完全限定名时,我得到了编译错误。像这样使用类的完整包有什么问题?可能的解决方案是什么?提前谢谢

让我们看看您的TestConverter类。线路

<A,com.test.v2.A> A convert(com.test.v2.A type) { ....
就像你在界面上做的那样

我想你真正想要的是:

public interface SampleConverter<T, S> {
      T convert(S type);
}

import com.test.v1.A
public class TestConverter implements SampleConverter<A, com.test.v2.A> {
    public A convert(com.test.v2.A type) {
        ....
   }
}
公共接口采样转换器{
T转换(S型);
}
导入com.test.v1.A
公共类TestConverter实现SampleConverter{
公共A转换(com.test.v2.A类型){
....
}
}

那么,错误是什么?标记“.”上的语法错误,扩展expectedGeneric类型参数必须是有效标识符,它们不能包含点。
public interface SampleConverter<T, S> {
      T convert(S type);
}

import com.test.v1.A
public class TestConverter implements SampleConverter<A, com.test.v2.A> {
    public A convert(com.test.v2.A type) {
        ....
   }
}