Я наткнулся на странное поведение, которое я не понимаю.
Мне нужно передать String в общий файл и вызывать предупреждение.
Type safety : Unchecked cast from String to T
-
Если я добавлю
@SuppressWarnings("unchecked")
выше объявления метода он отлично работает. -
Если я добавлю его выше назначения, он выдает ошибку компилятора в затмевать.
Это отлично работает.
@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);
}
Любая идея, что вызывает несоответствие между двумя способами подавления предупреждения?