Как инициализировать объект списком разных типов?

Эй, я ' m инициализация ListRepository двумя разными типами списков инициализации. Лучше всего было бы что-то вроде этого.

public ListRepository(String id, List<PrimaryKey> initilizationList)
{
   // Load objects from data source via primary key.
}

public ListRepository(String id, List<DomainObject> initilizationList)
{
   // Store objects directly
}

К сожалению, это невозможно из-за стирания типа во время выполнения. Мне не нравится конструкторский подход с List в качестве аргумента, это приводит к некрасивой проверке instanceof первой записи, чтобы определить тип списка и обработать его.

Как решить такую ​​проблему с помощью интуитивно понятного и чистого API?

5
задан Christopher Klewes 28 March 2011 в 10:49
поделиться