У меня есть два разных интерфейса, которые используют одни и те же методы, но не реализуют и не расширяют друг друга. Эти два интерфейса каждый расширяются другим классом, который реализует методы интерфейсов.Изменение переменных класса типа
У меня тогда есть класс, который находится в отдельном пакете, который вызывает методы интерфейса.
Таким образом, класс имеет методы, которые называет методы интерфейсов, которые все одинаковы.
public void doThis(){
connection.doThis();
}
public void doThat(){
connection.doThat();
}
public void doAnother(){
connection.doAnother();
}
Теперь я хочу, чтобы сделать переменную соединение работы для обоих Interface1 и interface2.
Моя идея состояла в том, чтобы установить соединение в качестве класса переменной
Object connection
, а затем изменить его тип, чтобы interface1 или interface2 в зависимости от состояния:
if(this){
//condition which converts connection to type interface1
}
else{
//condition which converts connection to type interface2
}
Как я могу это сделать. Я могу сделать это?
Мне предоставлен интерфейс, который нельзя изменить, но не использует удаленный доступ. Но в моем проекте используется RMI. Поэтому я создал второй интерфейс в отдельном пакете, который выполняет Remote. Таким образом, причина для двух разных интерфейсов, которые делают то же самое.
Почему бы не использовать дженерики? –
Если оба интерфейса имеют одинаковые методы, вам не нужно ничего делать, используйте ссылочный тип как 'Interface1' или' Inteface2'. –
Почему существуют два идентичных интерфейса, каждый из которых имеет один класс реализации? Очень вероятно, что вам просто нужен один интерфейс с двумя реализациями, и в этом случае вы можете иметь переменную-член из типа этого одного интерфейса. – amalloy