У меня есть интерфейс Tree
и абстрактный класс RBTree
, который реализует этот интерфейс.У меня также есть несколько классов Tree1
... Tree9
, которые расширяют этот абстрактный класс.
Я написал тестовый модуль, в котором я хочу сделать что-то вроде этого:
public void testRandom(RBTree tree){
for(int i = 0; i < 10; i++){
rbTree = new Tree1(); //if the tree in the parameter was of instance Tree1
rbTree = new Tree2(); //if the tree in the parameter was of instance Tree2
//etc.
/**
* do something with rbTree
*/
}
}
Возможно ли сделать это без , используя цепочкузаявления (или переключатель) с большим количеством instanceof()
?
(примечание: я не могу ничего изменить в дизайне, я знаю, что это не совсем оптимально)