`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 期)
在 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 期)