为什么我在这里得到一个未经检查的警告?

时间:2012-06-28 23:00:26

标签: java generics

数据集扩展了ArrayList。

Dataset<Pair<SRGB>> data = new Dataset<Pair<SRGB>>();
Statement stmt = this.conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
    data.add(new Pair<SRGB>(SRGB.create(rs.getString(2)),
                            SRGB.create(rs.getString(3)),
                            rs.getDouble(1),
                            rs.getInt(4)));
}
warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.ArrayList

2 个答案:

答案 0 :(得分:5)

您有可能宣布您的Dataset课程延伸ArrayList而没有任何通用类型。

确保您的Dataset课程如此延伸ArrayList

class Dataset<T> extends ArrayList<T> {
    // ...
}

class Dataset<T> extends ArrayList {
    // ...
}

答案 1 :(得分:-1)

也许this文档可以帮助您

我知道这不是你的问题,但你知道你可以用注释来抑制这些警告:

@SuppressWarnings("unchecked")