Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么';以下方法是否会产生潜在的堆污染?_Java_Enums - Fatal编程技术网

Java 为什么';以下方法是否会产生潜在的堆污染?

Java 为什么';以下方法是否会产生潜在的堆污染?,java,enums,Java,Enums,爪哇7 我写道: public static <E extends Enum<E>> List<SelectItem> getSelectItemList(Enum<E>... es){ List<SelectItem> items = new ArrayList<SelectItem>(); for(Enum<E> e : es){ items.add(new SelectIte

爪哇7

我写道:

public static <E extends Enum<E>> List<SelectItem> getSelectItemList(Enum<E>... es){
    List<SelectItem> items = new ArrayList<SelectItem>();
    for(Enum<E> e : es){
        items.add(new SelectItem(e, e.toString()));
    }
    return items;
}
公共静态列表getSelectItemList(枚举…es){ 列表项=新建ArrayList(); 用于(枚举e:es){ 添加(新的SelectItem(e,e.toString()); } 退货项目; } 这个方法编译时没有任何警告。为什么?我希望这样使用泛型类型(实际上是数组)的varargs会产生

通过varargs参数es的潜在堆污染


你能解释一下吗?

不可修改类型的vararg通常是这样工作的<代码>枚举…在运行时被有效地评估为
Enum[]
。此时,您无法确定哪些引用可能会进入数组

更多信息请点击此处:


Enum
基类型实际上会给您一些类型安全性,即使在编译时也是如此,所以我想这就是为什么您是安全的。

它不是一个
E
数组,而是一个具有泛型
E
的枚举数组。