У меня есть класс, который содержит набор Valueloaders, которые обрабатывают значения типа T. Вот как я создал класс. Однако этот класс генерирует предупреждение о непроверенном литье в строке 39 return (ValueLoader<T>) loader;
предупреждение о непроверенном отбрасывании на оператор return
Я хотел бы знать, есть ли способ очистить это предупреждение. Вот мой код.
public enum ValueLoaderRegistry {
REGISTRY;
private transient Map<Class<?>, ValueLoader<?>> map = new HashMap<Class<?>, ValueLoader<?>>();
private ValueLoaderRegistry() {
initialize();
}
private void initialize() {
map.put(Integer.class, new IntegerValueLoader());
map.put(String.class, new StringValueLoader());
map.put(Double.class, new DoubleValueLoader());
map.put(Boolean.class, new BooleanValueLoader());
map.put(Regions.class, new RegoinsValueLoader());
}
@SuppressWarnings("unchecked")
public <T> ValueLoader<T> getLoader(Class<T> key){
//Suppress unchecked cast warning, as by design we are making sure that
//the map contains the objects with right cast.
ValueLoader<?> loader = map.get(key);
return (ValueLoader<T>) loader;
}
}
Это звучит хорошо. Благодаря! –