黑马程序员技术交流社区

标题: 后两行为什么报错? 求解释 [打印本页]

作者: 齐连涛    时间: 2012-11-3 15:11
标题: 后两行为什么报错? 求解释
后两行为什么报错?老师的很正常的
        int[] a1=new int[3];
                int[] a2=new int[4];
                int[][] a3=new int[2][3];
                String [] a4=new String[3];
                System.out.println(a1.getClass()==a2.getClass());
                //System.out.println(a1.getClass()==a4.getClass());
                //System.out.println(a1.getClass()==a3.getClass());

作者: 邱峁    时间: 2012-11-3 15:25
你的a3[]是二维数组不能和a1的一维数组比较
你的a4是字符串也是不能比的
你要想必的话只能把a4转成数组


作者: jsfjb    时间: 2012-11-3 15:28
                int[] a1=new int[3];
        int[] a2=new int[4];
        int[][] a3=new int[2][3];
        String [] a4=new String[3];
        System.out.println(a1.getClass()==a2.getClass());
        System.out.println(a1.getClass().equals(a4.getClass()));
        System.out.println(a1.getClass().equals(a3.getClass()));
        System.out.println(new String("123") == new String("234"));//这个是两个同样的对象。
        //用来错误的原因:我认为两个不同类型的对象比较的话,不能用 == 比较,要用equery  比较。

{:soso_e144:}{:soso_e113:}
作者: 刘伟平    时间: 2012-11-3 15:32
a1.getClass()的类型是:Class<? extends int[]>
a2.getClass()的同样是:Class<? extends int[]>
a3.getClass()的类型是:Class<? extends int[][]>
a4.getClass()的类型是:Class<? extends String[]>

视频上没出问题,可能是当时的版本比较低
作者: 梁胜海    时间: 2012-11-3 15:33
public static void main(String[] args) {
        int[] a1=new int[3];
    int[] a2=new int[4];
    int[][] a3=new int[2][3];
    String [] a4=new String[3];
    System.out.println(a1.getClass().toString());//打印结果class [I
    System.out.println(a2.getClass().toString());//打印结果class [I
    System.out.println(a3.getClass().toString());//打印结果class [[I
    System.out.println(a4.getClass().toString());//打印结果class [Ljava.lang.String;
   // System.out.println(a1.getClass()==a2.getClass());
   // System.out.println(a1.getClass()==a4.getClass());
    //System.out.println(a1.getClass()==a3.getClass());
}        根据打印结果,看出a1==a2,其他的就不一样,现在你知道了吧。




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