我不确定如何正确命名这个问题,所以如果它更适合编辑,请这样做。我的问题与在接口中使用泛型类型然后强制实现到特定类型有关。像这样:
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
}
}
除非你不能使对象参数化,否则我不确定如何设置这类东西。它甚至可能吗?现在我只使用通用对象,但这让我不得不检查每个方法和/或转换等传入的类的类型。如果我可以在接口上使用泛型,那将会更加清晰。然后是关于实施的具体课程。
答案 0 :(得分:4)
public interface Test<T> {
void testMethod(T obj);
}
你很亲密。
然后,如果testMethod
特定于传入的类,则可以按照您的方式编写类,或者......
public class TestImpl<T> implements Test<T> {
@Override
public void testMethod(T obj) {
//Do something
}
}
现在,您可以通过new TestImpl<TestObject>()
或new TestImpl<TestObject2>()