Я наткнулся на странное поведение, которое я не понимаю.
Я должен отбрасывать строку в общедоступную и оно производит предупреждение.
Type safety : Unchecked cast from String to T
Если я добавлю @suppresswarnings («без проверки»)
выше метода объявления
Работает нормально.
Если я добавляю его выше назначения, он производит ошибку компилятора в затмение.
Это работает нормально.
@SuppressWarnings("unchecked")
public <T> T search(final String query){
T returnValue = null;
...
if(returnValue instanceof String){
returnValue = (T) collection.getString(attrName);
}
Это не работает нормально.
public <T> T search(final String query){
T returnValue = null;
...
if(returnValue instanceof String){
@SuppressWarnings("unchecked") // Compiler error: "returnValue cannot be resolved to a type"
returnValue = (T) collection.getString(attrName);
}
Любая идея, что вызывает несоответствие между двумя методами подавления предупреждения?