黑马程序员技术交流社区

标题: 放到方法里面就没效果了 [打印本页]

作者: 史卫平    时间: 2011-9-10 09:16
标题: 放到方法里面就没效果了
[code=java]String[] a2 = new String[]{"abc","xyz","www"};
                System.out.println("————————————————————");
                print((a2);
//              System.out.println(Arrays.asList(a2));
                System.out.println("————————————————————");
        }

        private static void print(Object obj) {
                // TODO Auto-generated method stub
                System.out.println(Arrays.asList(obj));
        }[/code]打印a2里里面的各个元素
注释的部分可以正常打印
把打印的代码放到方法里面就不行了
[ 本帖最后由 史卫平 于 2011-09-10  09:20 编辑 ]
作者: 程钧杰    时间: 2011-9-10 09:24
把打印的代码放到方法里面就不行了,放到哪里,我不是很明白
[ 本帖最后由 chengjj520 于 2011-09-10  09:28 编辑 ]
作者: 张晨    时间: 2011-9-10 09:41
1.第三行 多加了一个左括号。
2.第八行中型参类型应该从Object改为String[]。
3.如果你要传Object类型,那么print语句应该修改成print(Arrays.asList(a2)),而print方法打印语句修改成System.out.println(obj);
下面的代码参考:[code=java]import java.util.Arrays;

public class Array {
        public static void test ()
        {
                String[] a2 = new String[]{"abc","xyz","www"};
            System.out.println("————————————————————");
            print( Arrays.asList(a2));
            
         //System.out.println(Arrays.asList(a2));
            System.out.println("————————————————————");
        }

private static void print(Object obj) {
    // TODO Auto-generated method stub
    System.out.println(obj);
        }

public static void main (String argc[])
{
        Array.test();
}
}[/code]
[ 本帖最后由 张晨 于 2011-09-10  09:45 编辑 ]
作者: 匿名    时间: 2011-9-10 09:53
第3行[code]print((a2); [/code]少了一个括号)
作者: 匿名    时间: 2011-9-10 14:17
多了一个括号是删除不必要的代码的时候不小心加上的
早上没时间多看,刚才弄懂了
其实这就是高新技术视频里面讲的内容
jdk1.5以后asList方法的参数就是一个可变参数
在jdk1.4里面参数是一个数组
我传进来这个数组的时候我是以Object的类型传的
相当于告诉编译器不要把这个东西分解成字符串对象数组
所以它直接用jdk1.5的理解方式调用了
不知道我的理解正确不,看到的评价一下
作者: 匿名    时间: 2011-9-12 16:53
你上面的理解绝对靠谱
想说下:
直接 Arrays.toString(String[] s);  就打印出来了。。。
   先转成list。。。再通过list的toString()打印出来。。。太累了
作者: 匿名    时间: 2011-9-12 23:09
toString好像可以,asList方法是视频里面看到的
作者: 王清云    时间: 2011-9-13 13:50
  1. private static void print(Object[] obj) {
  2.         // TODO Auto-generated method stub
  3.         System.out.println(Arrays.asList(obj));
  4. }
复制代码
只要把Object改成Object[],asList方法在1.4中需要的参数就是Object[],你只传一个Object进去,就会用1.5中的规范,当成一个对象来看,就打出整个数组的字节码。
[ 本帖最后由 王清云 于 2011-09-13  13:52 编辑 ]




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