Mir*_*vod 2 java variables types
对不起,如果这是一个愚蠢的问题.我是Java的新手(来自PHP背景).所以这就是我所拥有的.
String variable = new String("whatever");
//instanceof String == true here
variable = null;
//whereas here instanceof String == false
variable = new Integer(3);// error
Run Code Online (Sandbox Code Playgroud)
不将变量设置为null会删除它的引用,因为我用对象类型实例化它?有没有办法可以保留变量名称但更改它的数据类型?谢谢
Java是一种强类型语言.
当您指定variable为a时String,它始终是String.如果您尝试为其分配无效类型,编译器将给您一个错误,因为您尝试混合类型.
在Java中将某些内容设置为null不会更改类型.当然,您可以允许变量超出范围并创建另一个具有不同类型的变量,例如:
if ( x == 1 ) {
String variable = "whatever";
...
}
else {
Integer variable = new Integer( 3 );
...
}
Run Code Online (Sandbox Code Playgroud)
(重用变量名称当然可能会令人困惑).
您将注意到的另一件事是可以将子类分配给指定为超类的类型.例如,该类Integer是该类的子类Number,因此您可以这样做:
Number variable = new Integer( 3 );
Run Code Online (Sandbox Code Playgroud)