ในตัวอย่างต่อไปนี้
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;
สิ่งนี้ควรรวบรวมแม้ว่า