堆污染
- 单一个方法既使用泛型的时候也使用可变参数,此时容易导致堆污染
- 如在Arrays中的aList方法
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
改方法报了一个警告(类型安全问题:可变参数a可能导致堆污染)
Type safety: Potential heap pollution via varargs parameter a
在Java7中如下图
通过 @SafeVarargs的注解来抑制编译器的警告将此方法复制到自定义类中就出现了警告
更多推荐
Java中泛型转换引起的堆污染
发布评论