黑马程序员技术交流社区

标题: 关于Class的一个小问题 [打印本页]

作者: wdtdcm    时间: 2014-4-25 12:12
标题: 关于Class的一个小问题
本帖最后由 wdtdcm 于 2014-4-25 12:15 编辑
  1.                 int[] a1=new int[3];
  2.                 int[] a2=new int[4];
  3.                 int[][] a3=new int[3][4];
  4.                 String[] a4=new String[3];

  5.                 System.out.println(a1.getClass()==a2.getClass());
  6.                 System.out.println(a1.getClass()==a3.getClass());//此处不能编译通过
  7.                 System.out.println(a1.getClass().equals(a3.getClass()))//此处能编译通过
复制代码
那个"=="为什么不能通过编译啊?
equals()方法呢?

作者: linweiwen    时间: 2014-4-25 12:36
我这个没什么参考价值,抽空写的,
既然写了还是贴出来吧,自己留点思路。


  1. import java.io.*;

  2. public class TestCopy {
  3.         public static void main(String[] args) throws IOException {
  4.                 File c = new File("c:\\Temp");
  5.                 File d = new File("d:\\Temp4");
  6.                 d.mkdir();
  7.                 System.out.println(c.isDirectory());
  8.                 File[] cc = c.listFiles();
  9.                 for (int i = 0; i < cc.length; i++) {
  10.                         copyFile(cc[i]);
  11.                 }
  12.         }

  13.         public static void copyFile(File f) throws IOException {
  14.                 BufferedReader br = new BufferedReader(new FileReader(f));
  15.                 BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\Temp4\\"+ f.getName()));
  16.                 String str = null;
  17.                 while ((str = br.readLine()) != null) {
  18.                         bw.write(str+"\r\n");
  19.                         bw.flush();
  20.                 }
  21.                 br.close();
  22.                 bw.close();
  23.         }
  24. }
复制代码




作者: 小周务商    时间: 2014-4-25 12:54
System.out.println(a1.getClass()==a3.getClass());//这条是不是否同一种类型,不能用==来比较
System.out.println(a1.getClass().equals(a3.getClass()))//此处能编译通过,这条比较的是字节码的内存地址。可以用equals判断

我猜测的,也不知道对不对




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