黑马程序员技术交流社区
标题:
请各位帮忙看下,关于反射的一点小问题
[打印本页]
作者:
一碗小米周
时间:
2013-12-9 10:22
标题:
请各位帮忙看下,关于反射的一点小问题
本帖最后由 一碗小米周 于 2013-12-9 10:44 编辑
import java.lang.reflect.Field;
//编写一个给出指定类,并将此类中的String类型变量的值中的a字符换成b
public class Test2 {
public static void main(String[] args) throws Exception {
replaceValue(new Ojb());
System.out.println(new Ojb());
}
private static void replaceValue(Object ojb) throws Exception {
Class clazz = ojb.getClass();
Field[] fields = clazz.getFields();
for(Field field : fields){
if(field.getType()==String.class){
String oldValue = (String) field.get(ojb);
String newValue = oldValue.replace('a','b');
复制代码
这里的结果为什么并没有改变呢?求解释。谢谢各位了。
作者:
kongling
时间:
2013-12-9 10:41
这样才对Ojb obj=new Ojb();
replaceValue(obj);
System.out.println(obj);
replaceValue(new Ojb());你这里new Ojb()构造了一个临时变量。没有保存他的引用,System.out.println(new Ojb());的new Ojb()又重新构造了一个对象
作者:
一碗小米周
时间:
2013-12-9 10:44
kongling 发表于 2013-12-9 10:41
这样才对Ojb obj=new Ojb();
replaceValue(obj);
System.out.println(ob ...
哦。对,是这样的。没注意呢。谢谢你。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2