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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘明月 中级黑马   /  2012-9-8 12:25  /  1238 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

注:本题目中有两处错误!

public class Test1 {
  String s="basketbaoo";
  String s2="balsl";
  String s1="itcast";
@Override
public String toString() {
  return "Test1 [s=" + s + ", s2=" + s2 + ", s1=" + s1 + "]";
}
}
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);
   
   }
  }
}
}

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
问题呢,哪去了?
回复 使用道具 举报
本帖最后由 彭润生 于 2012-9-8 13:48 编辑

注:本题目中有两处错误!

public class Test1 {
  String s="basketbaoo";
  String s2="balsl";
  String s1="itcast";
@Override
public String toString() {
  return "Test1 [s=" + s + ", s2=" + s2 + ", s1=" + s1 + "]";
}
}
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();//这儿获取的对象应该是obj.getClass(),不然你,你传一个Object.class而object里面没有这个String.class的这个成员所以,if里面的没有执行
  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);
   
   }
  }
}
}
不知道改过后的,是不是你想要的结果。

回复 使用道具 举报
彭润生 发表于 2012-9-8 13:31
注:本题目中有两处错误!

public class Test1 {

还有一个错误
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马