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
}
}