Bei der Verwendung von Spring ApplicationContext und seiner Methode getBeansOfType
ist ein Problem mit generischen Typen aufgetreten. Dies zeigt das Problem:
Ich lade alle Beans eines parametrisierten Typs aus dem Container ab. Ich möchte sie als Generator<?>
haben und benutzerdefinierte Logik verwenden, um basierend auf einer Eigenschaft für jede Generator
-Instanz sicher zum entsprechenden Typparameter zu konvertieren.
Mein Problem ist, dass ich keine Möglichkeit finden kann, allGenerators
ohne Sicherheitswarnungen zu vergeben, obwohl ich auf konzeptioneller Ebene keinen unkontrollierten Typparameter festlege. Ich möchte nur einen Rohtyp in einen Wildcard-Typ konvertieren.
Gibt es ein Idiom, das @SuppressWarnings
nicht benötigt, um dorthin zu gelangen?
Ich nehme an, das ist nicht möglich (um einen unformatierten Typ in einen mit einem Wildcard-Parameter zu konvertieren).
Der Grund dafür ist, dass der generische Typ (und insbesondere der Platzhalter) etwas anderes ist als ein Klassentyp und nicht mit den Werkzeugen der Klassentypen dargestellt werden kann.