泛型:为什么Class <Integer []> clazzIntArray = int []。class; 不起作用

塑料

以下几行:

Class<Integer> clazzInteger = Integer.class;
Class<Integer> clazzInt = int.class;

有效,即使在以下情况下也可以编译/运行:

if(clazzInt.equals(clazzInteger)) {
  System.out.println("clazzInt equals clazzInteger");
}else {
  System.out.println("clazzInt and clazzInteger are not equal");
}

将打印clazzInt and clazzInteger are not equal但是Class<int> clazzInt = int.class;,当然不行。

那么为什么这种类比不能应用于数组类型呢?

Class<int[]> clazzIntArray = int[].class;
Class<Integer[]> clazzIntArray = int[].class;  // type mismatch: 
//cannot convert from Class<int[]> to Class<Integer[]>

Class<int[]> clazzIntArray = int[].class; // this is ok 

我现在莫名其妙为什么Class<Integer[]> clazzIntArray = int[].class无效?什么Class<int[]>意思 以及为什么数组和非数组类型之间的类比不起作用?

newacct

自动装箱与此无关。Java语言规范(在JLS 15.8.2中)确切指定什么类型T.class具有:

  • 如果T是引用类型,则T.class具有类型Class<T>
  • 如果T是原始类型,则T.class具有类型Class<wrapper class of T>

而已。int.class之所以有类型,Class<Integer>是因为规范这样说。int[].class有类型,Class<int[]>因为规范中是这样说的。Class<int[]>并且Class<Integer[]>不是Java中的兼容类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

.class + .class不起作用

来自分类Dev

构造函数不起作用“错误:对'(<class name>)(int&,int&)的调用不匹配”

来自分类Dev

$(“。class”)。width($(this)...)不起作用

来自分类Dev

$('。class')。click()不起作用

来自分类Dev

为什么ng-class不起作用?

来自分类Dev

为什么find cmd在/ sys / class内部不起作用?

来自分类Dev

为什么ng-class不起作用?

来自分类Dev

为什么在pymongo中将integer用作键不起作用?

来自分类Dev

为什么<?扩展Number>对Integer不起作用?

来自分类Dev

为什么is_integer()方法不起作用?

来自分类Dev

为什么ArrayList <Integer>包含不起作用?

来自分类Dev

next(“ some class”)不起作用

来自分类Dev

.class选择器不起作用

来自分类Dev

ng-class条件不起作用

来自分类Dev

ng-class条件不起作用

来自分类Dev

为什么`Integer('009')`不起作用,而`Float('009')`起作用?

来自分类Dev

为什么这个$ class有效而$ this-> class不起作用?

来自分类Dev

int.class自动装箱到Class <Integer>

来自分类Dev

为什么@RunWith(SpringJUnit4ClassRunner.class)不起作用?

来自分类Dev

为什么Vue.js:class取决于列表项属性时不起作用?

来自分类Dev

为什么同一个语句对C ++中的Class成员不起作用?

来自分类Dev

您知道为什么从 Class 返回的 List 项不起作用吗?

来自分类Dev

ng-class验证在AngularJS中不起作用

来自分类Dev

ng-class在指令内不起作用

来自分类Dev

PHP不能再使用`class`(只是不起作用)

来自分类Dev

CSS Background-Position在.class中不起作用

来自分类Dev

ng-class验证在AngularJS中不起作用

来自分类Dev

ng-class 范围变量不起作用

来自分类Dev

ID-Selector 与 Class-Selector 结合不起作用

Related 相关文章

  1. 1

    .class + .class不起作用

  2. 2

    构造函数不起作用“错误:对'(<class name>)(int&,int&)的调用不匹配”

  3. 3

    $(“。class”)。width($(this)...)不起作用

  4. 4

    $('。class')。click()不起作用

  5. 5

    为什么ng-class不起作用?

  6. 6

    为什么find cmd在/ sys / class内部不起作用?

  7. 7

    为什么ng-class不起作用?

  8. 8

    为什么在pymongo中将integer用作键不起作用?

  9. 9

    为什么<?扩展Number>对Integer不起作用?

  10. 10

    为什么is_integer()方法不起作用?

  11. 11

    为什么ArrayList <Integer>包含不起作用?

  12. 12

    next(“ some class”)不起作用

  13. 13

    .class选择器不起作用

  14. 14

    ng-class条件不起作用

  15. 15

    ng-class条件不起作用

  16. 16

    为什么`Integer('009')`不起作用,而`Float('009')`起作用?

  17. 17

    为什么这个$ class有效而$ this-> class不起作用?

  18. 18

    int.class自动装箱到Class <Integer>

  19. 19

    为什么@RunWith(SpringJUnit4ClassRunner.class)不起作用?

  20. 20

    为什么Vue.js:class取决于列表项属性时不起作用?

  21. 21

    为什么同一个语句对C ++中的Class成员不起作用?

  22. 22

    您知道为什么从 Class 返回的 List 项不起作用吗?

  23. 23

    ng-class验证在AngularJS中不起作用

  24. 24

    ng-class在指令内不起作用

  25. 25

    PHP不能再使用`class`(只是不起作用)

  26. 26

    CSS Background-Position在.class中不起作用

  27. 27

    ng-class验证在AngularJS中不起作用

  28. 28

    ng-class 范围变量不起作用

  29. 29

    ID-Selector 与 Class-Selector 结合不起作用

热门标签

归档