Verwendung von Javers 1.4.1.javers beschwert sich, wenn ein Feld als Sammlung deklariert, aber als konkreter Typ initialisiert wird
Ich habe ein Feld in einem POJO wie folgt erklärt:
private Collection<String> names;
und dann mit einer Instanz einer konkreten Collection
Klasse wie folgt initialisiert:
names = new ArrayList<>();
Wenn ich Tests gegen diese Klasse laufen javes beschwert sich mit folgendem Fehler:
JaversException: MANAGED_CLASS_MAPPING_ERROR given javaClass 'class java.util.ArrayList is mapped to java.util.ArrayList, expected ManagedType
Der gleiche Fehler, wenn ich es inline, wie initialisieren:
private Collection<String> names = new ArrayList<>();
Auf der anderen Seite, wenn ich das Feld erklären als ein List
dann Javers glücklich ist:
private List<String> names;
I‘ m total newb zu javers, wurde es von jemand anderem in das Projekt eingeführt. Aber alles, was ich getan habe, war, dieses neue Feld zu einem bestehenden POJO hinzuzufügen. Was muss ich anschauen und/oder optimieren, um Javera glücklich zu machen?
erwarten, dass ein doofer ist; Ich bevorzuge es, Felder als den abstraktesten Typ zu deklarieren, der Sinn ergibt, in diesem Fall wäre das "Sammlung". Könnte diese Einschränkung von JaVers korrigiert werden? –
Nein, es ist kein Fehler, so funktioniert JaVers. JaVers verwendet verschiedene Algorithmen zum Vergleichen von Sets und Listen. Wie wirst du JaVers sagen, wen du wählen sollst? –
Zur Laufzeit konnte nicht über Reflektion der tatsächliche Typ bestimmt werden? –