У наступному прикладі
int i = -128;
Integer i2 = (Integer) i; // compiles
Integer i3 = (Integer) -128; /*** Doesn't compile ***/
Integer i4 = (Integer) (int) -128; // compiles
Integer i4 = -128; // compiles
Integer i5 = (int) -128; // compiles
Integer i6 = (Integer) (-128); // compiles
Integer i7 = (Integer) 0-128; // compiles
Я не можу кинути -128
з , (Integer)
але я можу кинути (int) -128
.
Я завжди думав, що -128
це int
тип, і кастинг з ним (int)
повинен бути зайвим.
Помилка в рядку з i3
є
cannot find symbol variable Integer
Я спробував це за допомогою оновлення Java 6 та оновлення Java 7.
EDIT: Ви маєте таку саму поведінку, +128
а не -128
. Схоже, це плутанина між одинарними та бінарними операторами.
Integer i3 = (Integer) (-128);
хоча поступається .
Expression expected
де Integer
.
Integer i = -128;
це, однак, має складатись.