作者hougzou (学无止境,啥时才摔到底?)
看板java
标题Re: [问题] boxing/unboxing
时间Thu Jan 25 22:05:07 2007
※ 引述《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
1F:推 PsMonkey:拼手速还是来得及的... \囧/ 01/25 22:31