2

Netbeans IDE 建议在代码的几行之前添加@SuppressWarnings("unchecked")。我不明白为什么。有人请建议我哪里出错了?

private List<Object> processNames() {

    List<Object> values = new ArrayList<>();
    List<String> addedNames = new ArrayList<>();;
    List<String> droppedNames = new ArrayList<>();;
    Map<String, String> changedNames = new LinkedHashMap<>();


 //I skipped code that adds values into above lists and Map
    values.add(addedNames) ;
    values.add(droppedNames) ;
    values.add(changedNames) ;

    return values:

}

  private void applyChanges() {
    List<Object> values = processNames();
    @SuppressWarnings("unchecked")// Suggested by IDE
            List<String> AddedNames = (List<String>) values.get(0);
    @SuppressWarnings("unchecked")
            List<String> droppedNames = (List<String>) values.get(1);
    @SuppressWarnings("unchecked")
            Map<String, String> changedNames = (Map<String, String>) values.get(2); 

    }
4

1 回答 1

3

您的 IDE 建议这样做,因为它无法确认您尝试检索的数据是您将其转换为的类型(未经检查的类型转换)。这个注解并不一定意味着 anException将被抛出,它只是用于强制转换;换句话说,它用于抑制带注释元素的编译器警告。

在摆脱该注释方面,我建议您创建自己的 custom Object。(似乎更适合维护 1List<CustomObject>个数据而不是 4 个单独的数据)。

于 2013-08-30T02:14:40.393 回答