Вчера я разрабатывал Java-класс, который хотел инициализировать списками различных универсальных типов:
TheClass(List<String> list) {
...
}
TheClass(List<OtherType> list) {
...
}
Это не скомпилируется, поскольку конструкторы имеют одинаковое стирание.
Я просто использовал фабричные методы, различающиеся по именам:
public static TheClass createWithStrings(List<String> list)
public static TheClass createWithOtherTypes(List<OtherType> list)
Это менее чем оптимально, поскольку не существует ни одного очевидного места, где доступны все различные варианты создания экземпляров.
Я пытался найти лучшие дизайнерские идеи, но нашел удивительно мало результатов. Какие существуют другие шаблоны для решения этой проблемы?