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.这次学习中运用的代码
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 反射机制
- 黑马程序员--Java基础--正则表达式、反射机制
- Java程序员从笨鸟到菜鸟之(八)反射和代理机制
- java中的反射机制
- java中的设计模式(三)--抽象工厂模式 反射机制
- Java的反射机制
- java 反射机制
- Java实现抽象工厂模式+java的反射的机制
- 黑马程序员——Java 反射机制
- Java中反射机制(Reflection)
- Java,反射机制
- JAVA基础--JAVA中的反射机制详解
- Java 反射机制
- java的反射机制及应用
- JAVA的反射机制
- 深入浅出JAVA反射机制
- java 反射机制
- Java中的反射机制,利用反射访问私有
- java中的反射机制浅析(转帖)
- Java高级---反射机制