这两个语句在 Java 中是否相等?
//code 1
Object o1[] = new Class[] {iface};
//code 2
Object o2[] = new Class<?>[] {iface};
最佳答案
是的,在这种情况下实际上是一样的。
这里
Object o1[] = new Class[] {iface};
您正在使用具有未参数化 Class
类型的原始类型。
这里
Object o2[] = new Class<?>[] {iface};
您正在使用参数化的 Class
类型但带有通配符。
既不会影响可以进入数组的内容。
由于您的引用是 Object[]
类型,您无论如何都不能依赖任何进一步的类型安全,因此它们是等价的。
Vulcan, in the comments,提出了一个很好的观点,原始类型将在编译期间为您创建警告。你可能想避免这种情况。
关于java - Java中的 'new Class[] {iface}'和 'new Class<?>[] {iface}'是一样的吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22189356/