Wenn Sie IntelliJ explizite Typinformationen hinzufügen lassen, sehen Sie, dass entityClass
vom Typ Class<Class<String>>
ist. Ich bin mir nicht sicher, ob du das willst. In Zeile 2 erstellen Sie zuerst eine Instanz von Class<T>
und dann eine von T
, aber das ist sowieso nicht möglich, weil die generische Information über T
zur Laufzeit verloren geht. Abgesehen davon können Sie Klassenobjekte nicht direkt instanziieren.
Eine mögliche Lösung wäre, einen Parameter vom Typ Class<T>
zu Ihrer Funktion oder Klasse hinzuzufügen und damit Objekte wie diese zu instanziieren.
Aber es gibt tatsächlich eine elegantere Lösung ohne die Verwendung von Reflexion. Definieren Sie einen Parameter des Methodentyps () -> T
und verwenden Sie Konstruktorreferenzen. Hier ist meine verwandte Frage über Konstruktorreferenzen und hier ist der Code: