Die Gruppe, mit der ich zusammenarbeite, hat also die Menge an Code, die wir für bestimmte Dinge eingeben müssen, reduziert. In diesem Fall handelt es sich um eine Spring-Webseite, die eine Liste mithilfe der DisplayTag-Bibliotheken anzeigt. Dies geschieht mit einer Klasse, die Generics verwendet und die Controller
Objekt, und dann eine Unterklasse davon für jede Seite, auf der es funktionieren soll.
Dieser Controller zeigt die SystemErrorReport
und definiert den Typ als den SystemErrorReportCommand
.
public class SystemErrorReportController extends
GenericSearchAndSelectController<SystemErrorReportCommand> {
Das Problem ist, dass SystemErrorReportCommand
, das als Typ übergeben wird, muss in seinem Konstruktor eine manuelle Deklaration seiner selbst haben, etwa so:
public SystemErrorReportCommand()
{
super(SystemErrorReport.class);
}
Das Befehlsobjekt wird später an etwas weitergegeben, das seinen expliziten Typ kennen muss. Ohne manuelle Angabe des Typs kommt es zurück als GenericCommand
eine andere Klasse von uns, denn die SystemErrorReportCommand
Bit nach der Kompilierungszeit verloren geht.
Ich bin nicht begeistert davon, denn es scheint etwas zu sein, das wir weiter automatisieren können, um Entwicklerfehler zu reduzieren. Gibt es einen eleganteren Weg, dies zu tun, oder bin ich mit diesem wegen der Art Löschung stecken?