Ich bin Laden der db-Treiber basierend auf Kommandozeilenparameter wie folgt aus:Wie generische Klasse vor der Instanziierung zu parametrisieren?
Class driverClass = null;
try {
driverClass = Class.forName(dbDriver);
catch(ClassNotFoundException e) {
// Print error message here
}
Später driverClass.newInstance()
Ich nenne.
Wie kann ich vermeiden, dass die Nachricht
Klasse ist eine rohe Art. Verweise auf generische Art
Class<T>
sollte
parametrierbar Wenn ich Class<Driver>
die Class.forName Teil beschwert sich über ein Typenkonflikt versuchen:
Mismatch Typ: Konvertierung von
Class<capture#1-of ?>
zuClass<Driver>
Das ist seltsam, wie kann ich die Klasse in der ersten Zeile korrekt parametrisieren?
Die 'CLASS' durch den generischen Paramter beeinflusst, so dass Sie nicht nicht nötig beim Aufruf von 'forName()'. Haben Sie beim Aufruf von 'newInstance()' versucht zu parametrieren? – Turing85
Warum verwenden Sie 'forName' an erster Stelle? Das ist nicht der richtige Weg, um einen Datenbanktreiber zu laden. –
@LewBloch Nun, ich dachte, das wäre der richtige Weg, wie kann ich es besser machen? – Beginner