java Class getDeclaredFields() 与getFields()的区别
来源:互联网 发布:入侵摄像头软件 编辑:程序博客网 时间:2024/06/05 04:38
getFields()与getDeclaredFields()区别:getFields()只能访问类中声明为公有的字段,私有的字段它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法
getMethods()与getDeclaredMethods()区别:getMethods()只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法
*
getConstructors()与getDeclaredConstructors()区别:getConstructors()只能访问类中声明为public的构造函数.getDeclaredConstructors()能访问类中所有的构造函数,与public,private,protect无关
class Person2 implements China{private static String sex ;public static String length;}
class Person2 implements China{private static String sex ;public static String length;}
public class Reflect_Example_10 {public static void main(String[] args) {/* * getFields()与getDeclaredFields()区别: * getFields()只能访问类中声明为公有的字段,私有的字段它无法访问,能访问从其它类继承来的公有方法. * getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法 */Class<?> demo = null;try {demo = Class.forName("com.reflect.Person2");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("====本类属性,不包括实现的接口或者父类的属性(public,protected,private)====");Field[] fields = demo.getDeclaredFields();for (Field field : fields) {int mod = field.getModifiers();String modifier = Modifier.toString(mod);Class<?> type = field.getType();String typeName = type.getName();String fieldName = field.getName();System.out.println("域:" + modifier + " " + typeName + " " + fieldName + ";");}System.out.println("====公有属性,包括实现的接口或者父类的公有属性(public)====");Field[] superFields = demo.getFields();for (Field field : superFields) {int mod = field.getModifiers();String modifier = Modifier.toString(mod);Class<?> type = field.getType();String typeName = type.getName();String fieldName = field.getName();System.out.println("域:" + modifier + " " + typeName + " " + fieldName + ";");}}}
运行结果:
====本类属性,不包括实现的接口或者父类的属性(public,protected,private)====
域:private static java.lang.String sex;
域:public static java.lang.String length;
====公有属性,包括实现的接口或者父类的公有属性(public)====
域:public static java.lang.String length;
域:public static final java.lang.String name;
域:public static final int age;
原文:http://mxdxm.iteye.com/blog/927990
- java Class getDeclaredFields() 与getFields()的区别
- java Class getDeclaredFields() 与getFields()的区别
- java Class getDeclaredFields() 与getFields()的区别
- java Class getDeclaredFields() 与getFields()的区别
- java Class.getFields与getDeclaredFields区别
- java反射---getDeclaredFields()与getFields()的区别
- java 中getDeclaredFields() 与getFields() 的区别
- Class类中getDeclaredFields() 与getFields()的区别
- getFields()与getDeclaredFields()区别
- getFields()与getDeclaredFields()区别
- java反射之getFields()与getDeclaredFields()的区别
- Java反射 getFields()和getDeclaredFields()的区别
- Java反射 getFields()和getDeclaredFields()的区别
- Java反射 getFields()和getDeclaredFields()的区别
- Java反射 getFields()和getDeclaredFields()的区别
- Java反射 getFields()和getDeclaredFields()的区别
- Java反射 getFields()和getDeclaredFields()的区别
- Java反射 getFields()和getDeclaredFields()的区别
- 两种方法重命名maven项目的版本号
- log4j配置详解
- 【Android】不弹root请求框检测手机是否root
- 最大堆
- eclipse 项目中搜索资源(类方法,文件名,文件中的字符串),快捷键分类说明
- java Class getDeclaredFields() 与getFields()的区别
- response对象
- JavaScript的事件举例
- Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效
- android 输入框等控件的移动
- Material Design的低版本兼容实现——View & Animation
- poj 3237 tree
- FPGA 视频拼接器底图的实现
- UE3 Animation Compression List