Java rawtypes编译器关于泛型数组创建的警告

Java rawtypes编译器关于泛型数组创建的警告,java,generics,javac,Java,Generics,Javac,我确实理解,不能在java中创建泛型类数组,例如 private static final Class<String>[] ARGUMENT_TYPE = new Class<String>[]{String.class}; 但现在java编译器抱怨 警告:[原始类型]找到原始类型:类 私有静态最终类[]参数_TYPE=新类[]{String.Class} 除了SuppressWarnings之外,还有什么方法可以对编译器说:“闭嘴,我必须按照您自己的规范来做!”我

我确实理解,不能在java中创建泛型类数组,例如

  private static final Class<String>[] ARGUMENT_TYPE = new Class<String>[]{String.class};
但现在java编译器抱怨

警告:[原始类型]找到原始类型:类

私有静态最终类[]参数_TYPE=新类[]{String.Class}


除了
SuppressWarnings
之外,还有什么方法可以对编译器说:“闭嘴,我必须按照您自己的规范来做!”

我不太确定您打算如何使用这个静态数组。一些额外的上下文会很好

这个怎么样

private static final Class<?>[] ARGUMENT_TYPE = new Class<?>[]{String.class, Int.class};
private static final Class[]参数_TYPE=newclass[]{String.Class,Int.Class};

为什么不使用
列表
?数组和泛型不能很好地结合。。。顺便问一下:
课程的目的是什么?为什么不
Class
?因为我知道我有
Class
。使用
似乎很奇怪。我们使用数组是因为第三方库需要
Class[]
我认为奇怪的是
Class
应该只有一个实例,那么为什么数组中有许多条目都指向同一个对象呢?您确定您的第三方库不希望使用普通的旧
字符串[]
?这与预期用途完全相同。但同样地,
对我来说看起来很奇怪:(究竟为什么编译器强迫我编写它?很抱歉,正如您在示例代码中已经看到的,现在可以为不同的类添加类对象。这并不是您所要求的(
类[]
)@Nikem,我认为编译器只是确保您打算使用泛型而不指定类型。这是一种对忽略警告指令的简写。将泛型类当作常规类使用而不明确告诉编译器这是您想要的,这是您犯了错误的危险信号。当然,在这种情况下只有使用未知类对象的数组才有意义,或者你的数组只能包含一个类对象,这会破坏数组的用途。但是我想让编译器变得如此智能是一项相当艰巨的任务。
private static final Class<?>[] ARGUMENT_TYPE = new Class<?>[]{String.class, Int.class};