Вот ситуация ...
У меня есть List<Object>
, где я должен передать его в довольно общие части моего кода.В некоторых частях список должен быть отсортирован.
Я НЕ буду заранее знать, какой тип объекта находится в списке.Однако в зависимости от того, как используется этот список, я гарантирую, что контракт на Comparable
таков, что каждый элемент в списке имеет одинаковый тип и может сравниваться друг с другом.
Другими словамив некоторых случаях реальным типом будет String
, в других случаях Date
.В других случаях что-то Custom
, что implements Comparable<Custom>
.
Однако в каждый случай, если реальный тип равен String
, all изэлементы в списке будут иметь тип String
.
Позвольте мне быть более точным, чтобы немного улучшить этот вопрос ...
Вот класс, над которым я работаю:
public class Thing {
private Map<String, List<SourcedValue<Object>>> properties;
}
Тогда SourcedValue
это:
public class SourcedValue<T> {
private T value;
private List<Sources> sources;
}
Итак, как вы предлагаете мне это объявить?