获取类的Class对象有两种方法。
现在我的问题是getClass()是Object类中的一个方法,但是.class是什么呢?是变量吗?如果是这样的话,那么它在Java中的定义在哪里?
发布于 2018-01-22 06:44:43
这是在内部实现的,称为类文本,它由JVM处理。
Java语言规范特别提到了它的术语“令牌”。
因此,.class不仅仅是一个变量,坦率地说,它根本不是一个变量。在更广泛的层面上,您可以将其视为关键字或标记。
https://docs.oracle.com/javase/specs/jls/se9/html/jls-15.html#jls-15.8.2
类文字是一个表达式,由类、接口、数组或基元类型的名称组成,或伪类型的'**
.**‘、、和令牌class**.**组成。 根据当前实例类的定义类加载器(§12.2)定义的类加载器定义的命名类型(或Class),类文本计算为命名类型(或void)的for对象。
发布于 2018-01-22 13:16:57
该信息驻留在类“file”中,尽管类不需要在文件系统中有一个物理.class文件。JVM负责使它从类定义中可用,就像其他答案声明的那样。
另见:https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html
https://stackoverflow.com/questions/48375901
复制相似问题