自己找到结果了,因为EnumSet的泛型定义时这样的, public abstract class EnumSet<E extends Enum<E>> extends AbstractSet<E> 所以报出了这个错误: Type parameter 'T' is not within its bound,should extend 'java.lang.Enum<T>
public static <T extends Enum<T>> Set<T> union(Set<T> a, Set<T> b) { 或者 Set<T> result = ((EnumSet)a).clone();
虽然结了帖子,突然有个问题, 先不管编译是否错误,这么两个写法有什么区别吗: Set<T> result = ((EnumSet<T>)a).clone(); 和 Set<T> result = ((EnumSet)a).clone();
楼主问的,跟下面的这个一样吧。问题不大,就是不指定右边的类型了。 List<String> l = new ArrayList(); List<String> ll = new ArrayList<String>();
public abstract class EnumSet<E extends Enum<E>> extends AbstractSet<E>
所以报出了这个错误:
Type parameter 'T' is not within its bound,should extend 'java.lang.Enum<T>
或者
Set<T> result = ((EnumSet)a).clone();
虽然结了帖子,突然有个问题,
先不管编译是否错误,这么两个写法有什么区别吗:
Set<T> result = ((EnumSet<T>)a).clone();
和
Set<T> result = ((EnumSet)a).clone();
List<String> l = new ArrayList();
List<String> ll = new ArrayList<String>();