java - 什么是乱操作、不安全操作?

标签 java generics collections hashset

我有以下代码:

private static final Set<String> allowedParameters;
static {
    Set<String> tmpSet = new HashSet();
    tmpSet.add("aaa");
    allowedParameters = Collections.unmodifiableSet(tmpSet);
}

它导致:

Note: mygame/Game.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

当我使用建议的选项重新编译时,我看到一个指针 (^) 指向 HashSet(); 前面的“new”。

有人知道这是怎么回事吗?

最佳答案

是的,您正在创建一个新的 HashSet,但没有说明它应该包含什么类,然后断言它包含字符串。改成

 Set<String> tmpSet = new HashSet<String>();

关于java - 什么是乱操作、不安全操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2419216/

相关文章:

c - 二叉树的通用 C

java - 在Java中找到两个大(大小~900K)字符串 vector 之间的孤儿的最快方法是什么?

python - 计数器 : ordering elements with equal counts

java - 是否有可能获得同一个类中某个类的构造函数中的整数值?

java - 如何正确查询多个嵌套数组中的字符串匹配项? - MongoDB

java - 在 Mac 上用 Eclipse 运行 tomcat

java - 当我尝试通过 POST 方法创建对象时,为什么会出现 NullPointerException?

java - 在抽象级别调用通用 Java 函数

Java泛型键盘输入

Scala 在时间戳映射中搜索时间戳的简单方法