`instanceof` 是否产生静态类型限定符?

Does `instanceof` produce a static type qualifier?

在 Typescript 中,可以使用符号并将其签名(以及编译器知道的关于该对象的所有信息)用作有效的类型限定符。这允许您这样做:

const foo: number = 3

const bar: typeof foo = 4

是否可以使用任何其他语言?我被告知可以在 Java 中使用 instanceof,但除了动态类型检查之外,我很难找到关于此关键字的任何文档。

首先:

Does instanceof produce a static type qualifier?

完全没有。 returns 布尔结果只是一个运算符。它告诉你if A is an instance of B。不多也不少。

在 Java 中,所有类型信息(至少在运行时)归结为 java.lang.Class 提供的信息。

换句话说:当你在Javaint foo = 3时,你最希望的就是Class<?> bar = int.class。另请注意,没有通用方法可以访问 "something" 的 Class 对象。

唯一的略微 "advanced experience" 添加了新的 var 关键字。这基本上允许您现在明确地写下类型,但让编译器完全处理它们。

var 给你的一个额外的语义元素:"name" 一些没有名字的东西的能力:

var obj = new Object() {
  private void test() {
    System.out.println("anonymous test");
  }
};
obj.test(); // works!

(来自 java 专业通讯,第 263 期)