У наступному прикладі
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;це, однак, має складатись.