Java 接口中的泛型类型和实现中的非泛型类型

Java 接口中的泛型类型和实现中的非泛型类型,java,generics,interface,Java,Generics,Interface,我不知道如何正确命名这个问题,所以如果它更适合编辑,请这样做。我的问题是在接口中使用泛型类型,然后将实现强制为特定类型。大概是这样的: public interface Test<T> { void testMethod(Object<T> obj); } 公共接口测试{ void测试方法(objectobj); } 然后,不允许在这个接口的实现中使用泛型对象,而是以某种方式设置类型 public class TestImpl implements Test&

我不知道如何正确命名这个问题,所以如果它更适合编辑,请这样做。我的问题是在接口中使用泛型类型,然后将实现强制为特定类型。大概是这样的:

public interface Test<T> {
    void testMethod(Object<T> obj);
}
公共接口测试{
void测试方法(objectobj);
}
然后,不允许在这个接口的实现中使用泛型对象,而是以某种方式设置类型

public class TestImpl implements Test<TestObject1> {
    @Override
    public void testMethod(TestObject1 obj) {
        //Do something
    }
}

public class Test2Impl implements Test<TestObject2> {
    @Override
    public void testMethod(TestObject2 obj) {
        //Do something
    }
}
公共类TestImpl实现测试{
@凌驾
公共void测试方法(TestObject1 obj){
//做点什么
}
}
公共类Test2Impl实现了测试{
@凌驾
公共void测试方法(TestObject2 obj){
//做点什么
}
}
除了你们不能参数化对象,我不知道如何设置这类东西。有可能吗?现在我只使用泛型对象,但这让我不得不检查每个方法和/或强制转换等传入的类的类型。如果我只在接口上使用泛型,然后在实现上使用特定的类,那会更干净

public interface Test<T> {
    void testMethod(T obj);
}
现在,您可以通过
newtestimpl()
newtestimpl()


现在,您可以通过
newtestimpl()
newtestimpl()

实例化类,为什么要使用
对象?您可以使用
void测试方法(T obj)直接用于界面设计。为什么要使用
对象
?您可以使用
void测试方法(T obj)直接。
public class TestImpl<T> implements Test<T> {
    @Override
    public void testMethod(T obj) {
        //Do something
    }
}