Ich habe folgendes Setup:Ungeprüfter Guss Warnung, wenn Rückkehr generische Implementierung basierend auf der Klasse <> Argument
@Override
public <T> Optional<EndpointProvider<T>> getProvider(Class<T> providedClass) {
if(providedClass.isAssignableFrom(RecommendationCategory.class)){
return Optional.of((EndpointProvider<T>) new RecommendationCategoryProvider());
}
return Optional.empty();
}
private class RecommendationCategoryProvider implements EndpointProvider<RecommendationCategory> {
Und die Compiler mir eine ungeprüfte Guss Warnung gibt. Ich würde denken, dass die Überprüfung von bereitgestelltenClass.isAssignableFrom (RecommendationCategory.class) eine ungeprüfte Cast-Warnung verhindern würde.
Gibt es eine Möglichkeit, diese Warnung in diesem Setup nicht zu haben?
Manchmal wirft der Compiler eine Warnung, in der Sie nur besser wissen. In einer perfekten Welt wäre es nicht, aber es ist nichts, um den Kopf (oder die Entwicklungszeit) zu verlieren. In diesem Fall glaube ich, dass Sie sicher sein müssen, dass Sie den Komponententyp gegen die Basisklasse überprüfen. Wenn du das schon toll machst, bist du in diesem Fall schlauer als der Compiler. – Rogue
Sie können [@SuppressWarnings ("unchecked")] (https://docs.oracle.com/javase/8/docs/api/java/lang/SuppressWarnings.html) verwenden, um dem Compiler mitzuteilen, die Warnung zu ignorieren. – McDowell