Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java instanceof是否生成静态类型限定符?_Java_Typescript_Programming Languages_Static Typing - Fatal编程技术网

Java instanceof是否生成静态类型限定符?

Java instanceof是否生成静态类型限定符?,java,typescript,programming-languages,static-typing,Java,Typescript,Programming Languages,Static Typing,在Typescript中,可以使用一个符号并使用它的签名(以及编译器知道的关于对象的所有信息)作为有效的类型限定符。这允许您执行以下操作: const foo:number=3 常数条:类型foo=4 有其他语言版本的吗?有人告诉我,在Java中使用instanceof是可能的,但除了动态类型检查之外,我很难找到关于这个关键字的任何文档。首先: instanceof是否生成静态类型限定符 一点也不。它只是一个返回布尔结果的运算符。它告诉您A是否是B的实例。不多不少 在Java中,所有类型信息(

在Typescript中,可以使用一个符号并使用它的签名(以及编译器知道的关于对象的所有信息)作为有效的类型限定符。这允许您执行以下操作:

const foo:number=3
常数条:类型foo=4
有其他语言版本的吗?有人告诉我,在Java中使用
instanceof
是可能的,但除了动态类型检查之外,我很难找到关于这个关键字的任何文档。

首先:

instanceof
是否生成静态类型限定符

一点也不。它只是一个返回布尔结果的运算符。它告诉您A是否是B的实例。不多不少

在Java中,所有类型信息(至少在运行时)都归结为Java.lang.Class提供给您的内容

换句话说:当您在Java中使用
intfoo=3
时,您最希望的是
Class bar=int.Class
。还要注意的是,没有通用的方法可以访问“something”的类对象

唯一略微“高级体验”添加了新的
var
关键字。这基本上允许您现在显式地写下类型,但让编译器完全处理它们

var
为您提供的另一个语义元素是:能够“命名”没有名字的东西:

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

(摘自java专家通讯,第期)

是的,它在java中是动态的;看起来您正在寻找Java中的
cast
,我认为这在Java中是不可能的。