推 PsMonkey:拼手速還是來得及的... \囧/ 01/25 22:31
※ 引述《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