Java中类文本的具体类型是什么?
在Java教程中,类文字被称为“文字类型” 最后,还有一种特殊的文字称为类 文本,由接受类型名并附加“.class”组成;对于 例如,String.class。这指的是 表示类型本身 但是在Java规范中,类文本不放在3.10文本类型下,而是放在15.8下。主要表达 那为什么呢 Java中类文本的具体类型是什么 被擦除的类型是Java中类文本的具体类型是什么?,java,literals,Java,Literals,在Java教程中,类文字被称为“文字类型” 最后,还有一种特殊的文字称为类 文本,由接受类型名并附加“.class”组成;对于 例如,String.class。这指的是 表示类型本身 但是在Java规范中,类文本不放在3.10文本类型下,而是放在15.8下。主要表达 那为什么呢 Java中类文本的具体类型是什么 被擦除的类型是java.lang.Class Foo.class的非擦除类型将是java.lang.class 它在JLS中作为主要表达式的原因是技术性的: 类文字不是单一文字。正是
java.lang.Class
Foo.class
的非擦除类型将是java.lang.class
它在JLS中作为主要表达式的原因是技术性的:
- 类文字不是单一文字。正是三个(或更多)不同的符号组合在一起,形成了这种“恒常性,字面上的东西”
- 他们决定称之为文字,因为该值是常量
- 从句法的角度来看,它必须和(其他)主要表达进入语法的同一部分。。。为了使语法能够描述语言,而不存在大量歧义/上下文敏感性
但归根结底,他们为什么决定以这种方式组织JLS并不重要。类文字的含义不取决于其指定的位置。不要将名称太字面化。一个
Foo.class
相当于class.forName(“pkg.Foo”)
,它比像1
和“abc”
这样的简单文字要复杂得多 他问的是语言,而不是API。在那种情况下,你的陈述基本上是错误的。