黑马程序员技术交流社区

标题: 反射中field类的另一个小问题 [打印本页]

作者: 刘明月    时间: 2012-9-8 12:28
标题: 反射中field类的另一个小问题
public class Test2 {
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException
{
  Test1 test=new Test1();
  changeToString(test);
  System.out.println(test);
}
public static void changeToString(Object obj) throws IllegalArgumentException, IllegalAccessException
{
  Field[]fields=Object.class.getFields();
  for(Field field:fields)
{
   if(field.getType()==String.class)
   {
    String oldValue=(String)field.get(obj);
    String newValue=oldValue.replace('b','a');
    field.set(obj, newValue);
   
   }
  }
}
}
张老师的视频中特意强调红色字体的if中的条件用“==”连接,为什么“==”比equals好呢?
作者: 武庆东    时间: 2012-9-8 12:53
因为只要地址不一样,那么肯定就不是是同一份字节码!equals的话,就必须进行内容的比较比较耗时!
作者: 刘明月    时间: 2012-9-8 12:56
武庆东 发表于 2012-9-8 12:53
因为只要地址不一样,那么肯定就不是是同一份字节码!equals的话,就必须进行内容的比较比较耗时! ...

意思就是说如果进行equals比价的话,需要一个字符一个字符进行比较是吗
作者: 武庆东    时间: 2012-9-8 13:11
刘明月 发表于 2012-9-8 12:56
意思就是说如果进行equals比价的话,需要一个字符一个字符进行比较是吗

至少我这么认为!




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