我有一个名为的静态实用程序方法toSet()
,它接收对象并返回一个Set
.
public static <T> Set<T> toSet(T item, T... otherItems) {
Set<T> items = new HashSet<T>();
items.add(item);
items.addAll(Arrays.asList(otherItems));
return items;
}
该方法适用于其他对象,但当我想制作一个Set
of时会产生编译Class<?>
。
Set<String> strings = toSet("OK", "This works well", "No problem");
Set<Integer> numbers = toSet(1, 2, 3, 4, 5);
但
Class<?> test = String.class;
Set<Class<?>> entities = toSet(test);
将产生Type mismatch: cannot convert from Set<Class<capture#5-of ?>> to Set<Class<?>>
。
我在这里做错了吗?我怎样才能在没有铸造的情况下实现这一目标?
提前致谢。