您的位置:首页 > 编程语言 > Java开发

java再复习——通过反射使用类的属性,方法和构造器

2017-02-28 19:36 525 查看
知道了如何获取到类的属性,方法和构造器,那么就应该开始使用了。

public class ReflectDemo {

public static void main(String[] args) throws Exception{
//加载类
Class<Student> clazz = Student.class;
//取得无参构造函数
Constructor<Student> declaredConstructor = clazz.getDeclaredConstructor(null);
//创建对象,注意这个方法是newInstance
Student newInstance = declaredConstructor.newInstance(null);
System.out.println(newInstance);
//取得属性
Field declaredField = clazz.getDeclaredField("name");
//去掉安全检查 ,因为如果是private的 则无法访问到,而且去掉安全检查会使的反射效率大大提高
declaredField.setAccessible(true);
/**
* 给属性赋值
* 第一个参数为对象:必须有对象
* 第二个参数为值
*/
declaredField.set(newInstance, "fuck");
//取值
System.out.println(declaredField.get(newInstance));

//取得方法
Method declaredMethod = clazz.getDeclaredMethod("getName", null);
/**
* 调用方法
* 第一个参数为对象
* 第二个参数为方法参数列表
*/
Object invoke = declaredMethod.invoke(newInstance, null);
System.out.println(invoke);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: