ในตัวอย่างต่อไปนี้
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 update 29 และ Java 7 update 1
แก้ไข: คุณจะได้รับพฤติกรรมเดียวกันกับแทน+128 -128ดูเหมือนจะสับสนระหว่างตัวดำเนินการยูนารีและตัวดำเนินการไบนารี
Integer i3 = (Integer) (-128);สอดคล้องแม้ว่า
Expression expectedที่Integerเป็น
Integer i = -128;สิ่งนี้ควรรวบรวมแม้ว่า