一般来说,我知道Java中的工作类型推断。但是当我使用JDK 10新功能 var 时,我很好奇它是如何工作的。
我的意思是我可以用这种方式编写循环
for(var i=0; i<100; i++) {
//something to do
}
编译器如何推断应该有 int 而不是 long ?
答案 0 :(得分:11)
因为0
是int
字面值。 0L
是一个long
字面值。
true
是boolean
字面值,"true"
是String
字面值。编译器处理像这样的简单情况没有问题。