Я не был уверен, как правильно назвать этот вопрос, поэтому, если он лучше подходит для редактирования, сделайте это. Мой вопрос связан с использованием общих типов в интерфейсе, а затем для принудительного внедрения в определенный тип. Что-то вроде этого:Общие типы в интерфейсе и не общие для реализации
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'? вы можете использовать 'void testMethod (T obj);' direct в вашем дизайне интерфейса. –