黑马程序员技术交流社区

标题: 带有装箱和var-arg的重载小问题 [打印本页]

作者: 卞潇洋    时间: 2012-11-22 14:11
标题: 带有装箱和var-arg的重载小问题
一个装箱和var-arg问题
  1. class BoxOrVararg{
  2. static void go(Byte x,Byte y){
  3. System.out.println("Byte,Byte");
  4. }
  5. static void go(byte... x){
  6. Sytem.out.println("byte...");
  7. public static void main(String[] args){
  8.    byte b = 5;
  9.    go(b,b);
  10. }
  11. }

复制代码
输出是Byte,Byte
为什么会调go方法?


作者: 徐大鹏    时间: 2012-11-22 16:19
因为这个方法中有System.out.println("Byte,Byte");
你又要输出Byte,Byte,所以只能调用这个方法。
作者: 卞潇洋    时间: 2012-11-22 16:21
徐大鹏 发表于 2012-11-22 16:19
因为这个方法中有System.out.println("Byte,Byte");
你又要输出Byte,Byte,所以只能调用这个方法。 ...

少写了一个“}”,不是这样的奥
作者: 徐大鹏    时间: 2012-11-22 16:38
class BoxOrVararg{
        static void go(Byte x,Byte y){
                System.out.println("Byte,Byte");
        }

        static void go(byte... x){
                System.out.println("byte...");
        }
        public static void main(String[] args){
                byte b = 5;
                go(b,b);
        }
}
你的代码是这样的吧!只有go(Byte x,Byte y)这个方法里才有System.out.println("Byte,Byte");
怎么就不是这样呢
作者: 卞潇洋    时间: 2012-11-22 17:06
徐大鹏 发表于 2012-11-22 16:38
class BoxOrVararg{
        static void go(Byte x,Byte y){
                System.out.println("Byte,Byte");

你去掉go(Byte x,Byte y)执行看看




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2