我最近了解到JVM 中有基本类型的类表示。例如,int.class
,double.class
,甚至是void.class
。
我不明白为什么会有这些。它们似乎没有任何功能性作用。使用反射,我搜索了类,它们没有构造函数、方法和字段。出于所有意图和目的,它们似乎是空的和无用的。原始类型变量甚至不是它们各自类的实例,如以下返回 false 所示:
int a = 3;
int.class.isInstance(a);
那么它们为什么存在呢?它们必须服务于某种目的,也许是为了编译器或其他东西,但无论它是什么,都完全超出了我的范围。int.class
在Integer API中甚至有一个明确的引用(对于每个原始类型及其各自的包装对象也是如此)。我在 JLS 中找不到任何关于它们存在的参考,更不用说它们的使用了。