这昨晚让我感到震惊,这些关键字确切定义在哪里。举个例子,假设我们有
public class A {
public void doSomething() {
// Only for illustration.
A.super.hashCode();
A.class.getClass();
}
}
从使用情况来看,这些关键字' super',' class',' this'看起来像静态(类级别)。这些不是静态的吗? ' [点操作员]如何知道它必须在这里表现不同,而不是将它们视为静态。
答案 0 :(得分:3)
这些关键字究竟在哪里定义
它们在Java Language Specification #3.9。
中定义从使用情况来看,这些关键字' super',' class',' this'看起来像静态(类级别)。
不,他们不是。考虑a.hashCode()
。
这些不是静态的吗?
是的,是的。
'。' [点运算符]如何知道它必须在这里表现不同,而不是将它们视为静态。
与任何其他对象引用相同。这是一项语义分析任务。