黑马程序员技术交流社区
标题:
张孝祥老师反射视频中一个小缺陷
[打印本页]
作者:
刘家斌
时间:
2014-10-12 09:58
标题:
张孝祥老师反射视频中一个小缺陷
/*
获取一个类中的所有字符串变量,并将字符串变量中的字母a全换成字母b
*/
import java.lang.reflect.*;
class ReflectText1
{
public static void main(String[] args) throws Exception
{
Person p=new Person();
//获取对象集合
Field[] fields=Person.class.getDeclaredFields();
//高级for取出集合中的所有对象
for(Field field:fields)
{
if(field.getType()==String.class)
{
field.setAccessible(true);//加true设置可见
String s=(String)field.get(p);//返回值类型为object,要强转
String m=s.replace("a","b");//字符串方法替换
field.set(p,m);//将新值赋给p对象的对应变量
}
System.out.println(field.get(p));
}
}
}
class Person
{
private String s1="abc";
private String s2="aasdbc";
private String s3="fgdfgqac";
String s4="dfsac";
String s5="fdf3abc";
private String s6="aba";
}
复制代码
张老师讲解的一个实例:取出类中所有的String类型的变量,并对字符串做更改的时,因为张老师定义的没有私有变量,但在实际中类中的变量大部分都是私有的,所以严格上讲我感觉应该这样写更合适一些
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2