Так у меня же классы эти реализуют один интерфейс ICompany, соотвественно в нем все описание дано. В моем случае я хочу сделать так чтобы реализация описанного в интерфейсе метода (к примеру) findAll возвращала все компании из разных Repository (spring), а еще точнее из разных баз данных.
@green_turtle да, именно так. Но вот хотелось бы обойтись без instanceof. Мне тут уже подсказывают что нужно углубляться в дженерики и вайлдкарды... Странно, почему такая простая на первый взгляд затея вызывала столько проблем?
Вопрос вполне мог бы решиться с помощью такого кода:
<T> T getCompany() {
return (T) CompanyContainer.getCurrentCompany();
}
Но он не решает главной задачи (метод возвращает объект типа Т).
У меня же CompanyContainer.getCurrentCompany() отдает ICompany, мне нужно его привести к CompanyImplA или CompanyImplB (в вависимости от от ситуации) и затем вернуть методом объект типа либо CompanyImplA либо CompanyImplB
@blackx да, и еще дополнение CompanyContainer.getCurrentCompany() в моем случае возвращает на самом деле ICompany, т.е. нужно внутри метода еще автоматически закастить тип в CompanyImplA или CompanyImplB, а уже потом вернуть CompanyImplA или CompanyImplB
Да, вы правильно уловили ход моих мыслей, параметризованные типы я уже использовал, проблема в том, что приведенный вами метод не решает задачу, он возвращает объект типа Т, а мне нужно чтобы он возврщал конкретно CompanyImplA или CompanyImplB, в зависимости от того что мне послал CompanyContainer.getCurrentCompany()...