A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 卞潇洋 中级黑马   /  2012-11-22 14:11  /  1542 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一个装箱和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方法?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
因为这个方法中有System.out.println("Byte,Byte");
你又要输出Byte,Byte,所以只能调用这个方法。
回复 使用道具 举报
徐大鹏 发表于 2012-11-22 16:19
因为这个方法中有System.out.println("Byte,Byte");
你又要输出Byte,Byte,所以只能调用这个方法。 ...

少写了一个“}”,不是这样的奥
回复 使用道具 举报
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 16:38
class BoxOrVararg{
        static void go(Byte x,Byte y){
                System.out.println("Byte,Byte");

你去掉go(Byte x,Byte y)执行看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马