Использование javers 1.4.1.javers жалуется, когда поле объявлено как Collection, но инициализировано как конкретный тип
У меня есть поле в POJO объявлен как это:
private Collection<String> names;
, а затем инициализируется с экземпляром конкретного Collection
класса, как это:
names = new ArrayList<>();
Когда я запускать тесты против этого класса , javers жалуется на следующую ошибку:
JaversException: MANAGED_CLASS_MAPPING_ERROR given javaClass 'class java.util.ArrayList is mapped to java.util.ArrayList, expected ManagedType
Та же ошибка, если я инициализировать его рядный, как:
private Collection<String> names = new ArrayList<>();
С другой стороны, если я объявляю поле как List
то javers счастлив:
private List<String> names;
Я m полный новичок в javers, он был представлен проекту кем-то другим. Но все, что я сделал, это добавить новое поле к существующему POJO. Что мне нужно, чтобы посмотреть и/или настроить, чтобы сделать javers счастливым?
Это облом; Я предпочитаю объявлять поля как наиболее абстрактный тип, который имеет смысл, в этом случае это будет 'Collection'. Можно ли исправить это ограничение JaVers? –
Нет, это не ошибка, так работает JaVers. JaVers использует различные алгоритмы для сравнения наборов и списков. Как ты собираешься рассказать Джаверсу, кого выбрать? –
Во время выполнения не удалось ли использовать отражение для определения фактического типа? –