如何理解java类文字?

时间:2015-08-25 13:43:22

标签: java literals

在JLS 15.8.2中,它说

  

类文字是一个表达式,由类,接口,数组或基本类型的名称或伪类型void组成,后跟.和标记class。< / p>

WIKI中,它说

  

编程语言中的表达式是显式值,常量,变量,运算符和函数的组合......

我在here

中没有看到任何类似的操作符

我知道String.classClass<String>的一个实例,我只是不明白为什么我们可以写一个这样的表达式。

那么.class到底是什么以及如何理解这种符号?

4 个答案:

答案 0 :(得分:2)

String.class表达式,它不会分解为操作数和运算符,但这并不能阻止它具有内部语法结构。我相信您会同意"不是运算符,但"i am a string"是一个文字表达式。

答案 1 :(得分:0)

如果对象foo上有一个名为bar的公共字段,您可以使用foo.bar来处理该字段。这里也是一样 - 把它想象成一个名为class的隐式公共静态字段。

答案 2 :(得分:0)

.实际上是一个运算符:它是“点运算符”。官方的运营商名单中没有提到它,因为......谁知道。

然而,在the official tutorial中提及:

  

对象类之外的代码必须使用对象引用或表达式,后跟点(。)运算符,后跟简单的字段名称,

答案 3 :(得分:0)

语法Foo.class是没有内存分配的(new Foo()).getClass()的快捷方式。只要方法想要接收Class<?>的实例作为参数,它就很有用。

标准库中的一些示例: