看板 java 關於我們 聯絡資訊
※ 引述《hougzou (學無止境,啥時才摔到底?)》之銘言: : ※ 引述《seekyou (galagala~￾N )》之銘言: : : public class Yikes { : : 1.public static void go(Long n){System.out.println("Long ");} : : 2.public static void go(Short n){System.out.println("Short ");} : : 3.public static void go(int n){System.out.println("int ");} : : 4. public static void main(String[] args) { : : 5. short y=6; : : 6. long z=7; : : 7. go(y); : : 8. go(z); : : 9. } : : 10.} : : 這是SCJP模擬試題,output是 int Long : : 為什麼line 8 有找到對應的方法而印出 Long,而line7就沒有呢? : : 謝謝指導 : 整數型別隱式轉型為int,而long由於長度大於int, : 會造成精確度問題(這是javac告訴大家的...),所以會去找第一行。 : 可以想見,若你把第一行刪掉,則會造成編譯失敗。 補充一點,若你把第二行物件改為基元short,就會印出你想要的了。 (拍謝~ 轉信版大E沒啥用~) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.122.31
PsMonkey:拼手速還是來得及的... \囧/ 01/25 22:31