У меня есть старый нетипизированный класс, предшествующий Java1.5, и мне нужно провести его рефакторинг с использованием Java Generics для большей безопасности типов в коде.
Старый код выглядит так:* Теперь этот вход может быть каким-то объектом, но он также может быть массивом, неприятными вещами.Создание общей версии кажется не тривиальным, я попытался:
class Foo<E> {
void setInput(E input) {...}
void setInput(E[] input) {...}
}
Проблема в том, что это неоднозначно, например, для вызовов:
Foo f = Foo<SomeClassyClass>();
f.setInput(null);
Есть ли какое-то хорошее решениек этой проблеме или мне нужно использовать совершенно другой подход?
Спасибо, Патрик