我有以下设置:
@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> {
编译器正在给我一个未经检查的强制警告。我认为检查providedClass.isAssignableFrom(RecommendationCategory.class)会阻止未经检查的强制转换警告。
有没有办法在此设置中没有此警告?
答案 0 :(得分:1)
这是我能做到的唯一方法。它不会显示任何警告。
public static <T> EndpointProvider<T> getProvider(Class<T> klass)
{
if (klass.isAssignableFrom(RecommendationCategory.class))
{
return new EndpointWrapper<T>(klass.cast(new RecommendationCategory()));
}
return null;
}
private static class EndpointWrapper<X> implements EndpointProvider<X>
{
public EndpointWrapper(X wrapper)
{
}
}
private static class RecommendationCategory
{
}
private static interface EndpointProvider<T>
{
}