Вывод локального типа Java – присвоение var нескольким типам – путаницаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Вывод локального типа Java – присвоение var нескольким типам – путаница

Сообщение Anonymous »

Рассмотрите следующий фрагмент ниже

Код: Выделить всё

var i = true ? Integer.valueOf(1) : "ABC"; //this works - why ?
System.out.println(i instanceof Object); //prints true
System.out.println(i instanceof Integer); //prints true
System.out.println(i instanceof String); //prints false

i = "haha";  //this compiles ok. How can we assign "haha" to Integer ??

System.out.println(i); //prints "haha"
Как, черт возьми, мы можем присвоить строку переменной, тип которой уже был выведен как целое число (поскольку «i instanceof Integer» печатает true)?
Почему компилятор это допускает и что здесь подразумевается для i?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -confusion
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»