2015-06-08 2 views
1

Я не могу удалить свои предупреждения с помощью непроверенного перевода. Я считаю, что это очень странно, потому что я добавил аннотацию @SuppressWarnings("unchecked") к методу, но Javac все еще показывает предупреждения.Непроверенные предупреждения не удаляются с помощью аннотации Javac @SuppressWarnings

[unchecked] unchecked cast (List<Integer>) getObject(LIST); 
    return (List<Integer>) getObject(LIST); 
    required: List<Integer> 
    found: Object 

Я создал пример, он выдает 2 предупреждения. Я использую обновление Oracle JDK 1.7 79.

package strange; 
import java.util.List; 

public class Strange implements Constants { 

    //Throw Warning 
    @SuppressWarnings("unchecked") 
    protected List<Integer> getList() { 
     return (List<Integer>) getObject(LIST); 
    } 

    @SuppressWarnings("unchecked") 
    protected List<Integer> getList2() { 
     return (List<Integer>) getObject(LIST); 
    } 

    //Throw Warning 
    @SuppressWarnings("unchecked") 
    protected List<Integer> getOtherList() { 
     return (List<Integer>) getObject(OTHER); 
    } 

    protected Object getObject(String key) { 
     return new Object(); 
    } 
} 

interface Constants { 

    public static final String LIST = "list"; 
    public static final String OTHER = "other"; 
} 

Спасибо.

+1

Вы можете сделать свой титул более описательный? –

+0

Какой у вас JDK? – kolossus

+0

@kolossus, он говорит 1.7u79 от Oracle в вопросе. – aioobe

ответ

1

Это выглядит как ошибка javac. Однако он не воспроизводится в 1.8.0u45.

Был ли быстрый поиск, и это могло быть связано с, например, JDK-8016099 или JDK-8022144. Можно было бы сделать биссект hg, чтобы найти точный набор изменений, который разрешил проблему.

Возможно, связанные с:

Смежные вопросы