【发布时间】:2012-03-14 06:42:57
【问题描述】:
我不确定如何正确命名这个问题,所以如果它更适合编辑,请这样做。我的问题与在接口中使用泛型类型然后强制实现为特定类型有关。像这样的:
public interface Test<T> {
void testMethod(Object<T> obj);
}
然后在此接口的实现中不允许使用泛型对象,而是以某种方式设置类型。
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
}
}
除了你不能参数化对象,我不知道如何设置这种东西。甚至可能吗?现在我只使用泛型对象,但这让我不得不检查每个方法和/或强制转换等传入的类的类型。如果我可以在接口上使用泛型和然后是具体的实现类。
【问题讨论】:
-
你为什么使用
Object<T>?你可以在你的界面设计中直接使用void testMethod(T obj);。