我记得在某处读到过,具有推断类型的局部变量可以重新分配相同类型的值,这是有道理的。
var x = 5;
x = 1; // Should compile, no?
但是,我很好奇如果您将 x
重新分配给不同类型的对象会发生什么。这样的东西还能编译吗?
var x = 5;
x = new Scanner(System.in); // What happens?
我目前无法安装 JDK 10 的早期版本,并且不想等到明天才知道。
最佳答案
不会编译,抛出“不兼容的类型:Scanner 无法转换为 int”。局部变量类型推断不会改变 Java 的静态类型性质。换句话说:
var x = 5;
x = new Scanner(System.in);
只是语法糖:
int x = 5;
x = new Scanner(System.in);
关于java - 可以将具有推断类型的局部变量重新分配给不同的类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49372970/