Ich habe eine Objektdatenzugriff mit jOOQ geschrieben und es gibt eine recht komplexe Art Signatur:Gibt es eine Grenze für die Komplexität eines vom Lombok-Wert abzuleitenden Typs?
Map<Record, Result<Record14<String, Integer, String, String, String, String, String, String, Integer, String, Boolean, Boolean, Integer, Boolean>>> result = create....
Ich versuchte es mit Lombok „val“
val result = create....
Dies funktioniert zu ersetzen, wenn ich laufen kompilieren/von eclipse-... Wenn ich innerhalb Gradle zu kompilieren versuchen, erhalte ich:
UpdatesDAO.java:307: error: incompatible types
.fetchGroups(key);
^
required: val
found: Map<Record,Result<Record14<String,Integer,String,String,String,String,String,String,Integer,String,Boolean,Boolean,Integer,Boolean>>>
Kann jemand Sag mir, warum es in Gradle für einfachere Typen funktionieren würde, aber nicht für komplexere Typen? Ich habe an anderen Orten in demselben Projekt, das wie etwas aussehen:
val records = dao.getDatastoreById(id); // Returns a type of List<Datastore>
und sie gut funktionieren, auch wenn sie mit Gradle zusammengestellt ... Bin ich etwas fehlt?
FYI: Lombok version = 1.14.8, Gradle Version 2.2.1
Ich habe lombok versucht == 1.14.6, Gradle Version 2.2.0
Ich habe auch mit sowohl Java 8 ausprobiert und 7 Java, sowohl OpenJDK und Oracle JDK
Frage: Warum benötigen Sie vierzehn generische Typen? Dies ist ein Code-Geruch mehr als alles andere ... – Makoto
Ich nehme an, Sie müssten das mit den JOOQ-Leuten und wie sie ihre Datenbank-Interaktionen machen ... Egal, ob es ein Code-Geruch ist, macht es wenig Sinn, dass es würde beim Kompilieren von Eclipse funktionieren und funktioniert nicht beim Kompilieren von Gradle. –
@Makoto: Oft werden diese Typen nur hinter den Kulissen in der fließenden API von jOOQ verwendet und vom Compiler abgeleitet –