java - 可以将具有推断类型的局部变量重新分配给不同的类型吗?

标签 java object variables type-inference java-10

我记得在某处读到过,具有推断类型的局部变量可以重新分配相同类型的值,这是有道理的。

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/

相关文章:

java - 在哪里可以找到 netlib-java 的源代码?

java - 尝试从一个非常简单的映射中获取不可变的 Collection View (浅拷贝就足够了)

java - 带有java配置的Spring Batch

Javascript 将对象插入特定索引

C++ 变量声明

batch-file - 在 Windows .cmd 文件或批处理文件中设置路径中包含空格的路径变量

Java HashMap 到矩阵

objective-c - 想要使用 for 循环来设置多个对象的属性

javascript 对象 火狐 watch

variables - 错误: Can't read "n" : no such variable in tcl