简介(反射适用场景):
反射机制:自我感觉是每一个程序员必备的,其最大的好处是使用反射的方法,可以重用。反射主要可以获取类中的所有属性和方法
//未使用反射的方法
//假如有个Text的类,类中有属性name,age,address,有方法getName,getAge,setAddress(String 参数)
public Text method1(Text t){
//此方法只能传入单个类的对象
//获取其name属性中的值,私有的无法访问
t.name;//如果name是公共的
t.setAddress(String 参数);//执行setAddress方法,公共的
return t;
}
//使用反射的方法,你可以定义两个不同的类,类中都有name属性,setAddress(String 参数)查看结果
public <T>Tmethod2(Class<T> t){
//此方法可以传入不同类的对象
//获取其name属性的值
Field field=param.getClass().getField("name");
//Field field=param.getClass().getDeclaredField("name");//同上
field.setAccessible(true);//添加私有权限,可以访问私有的对象和类
Object value=field.get(t);//注意t为当前类的对象
Metdhod m=t.getMethod("setAddress",String.class); //获取当前方法,主页String。class是参数类型
m.invoke(t,"参数值");//主页t是类的对象
return t;
}