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

java 反射机制

2017-10-26 20:37 387 查看
1.关于反射应用上的几个常用方法的笔记。

getClass():获得一个实例的类型类。类型类指的是代表一个类型的类

getFields():获取类中public的字段,包括父类的。

getDeclaredFields():获取自己声明的各种字段,包括public,protected,private。但是不包括父类的申明字段。

Field.getName()和Field.get(object obj):则是获取属性名和属性值

Field.getGenericType():返回该字段声明类型Type

注:其中getFields()和getDeclaredFields() 返回的都是Fileds数组,可以对数组进行遍历获得属性名和属性值。另外,需要进行Filed.setAccessible(true) 设置,并不是将方法的访问权限改成了public,而是取消java的权限控制检查,允许通过反射对类属性进行访问。

2.这次学习中运用的代码

public static void foreachList(Object nowBean) throws IllegalArgumentException, IllegalAccessException, SecurityException{

Class lastcls = nowBean.getClass();
Field[] lastfields = lastcls.getDeclaredFields();
for (Field f : lastfields) {
f.setAccessible(true);
String type = f.getGenericType().toString();
if (type.contains("List") && f.get(nowBean)!=null) {
for (Object obj : (List)f.get(nowBean)) {
foreachList(obj);
}
}
System.out.println("lastf:" + f.getName() + " lastf:" + f.get(nowBean));
System.out.println();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java