(转)Field getField(String name)与Field getDeclaredField(String name)的区别
2011-05-10 19:34
519 查看
Field getField(String name)返回已加载类声明的所有public成员变量的Field对象,包括从父类继承过来的成员变量,参数name指定成员变量的名称
而Field getDeclaredField(String name)不能获取从父类那继承过来的成员变量
***********************************************
而Field getDeclaredField(String name)不能获取从父类那继承过来的成员变量
***********************************************
package cn.com.vo; public class Father { public String name="父亲"; public String sex="男"; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } } +++++++++++++++++++++++++++++++++ package cn.com.vo; public class Son extends Father{ //public String name; public int age=20; } ========================================= package cn.com.vo; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import cn.com.vo.UserVo; public class TestReflect { /** * java反射机制 */ public static void main(String[] args) { try { //类的动态加载 Class c=Class.forName("cn.com.vo.Son");//方式一 Son vo=(Son)c.newInstance(); Field f=c.getField("name"); System.out.println(f.get(vo)); //注意:下段代码会报错, /*Field f2=c.getDeclaredField("name"); System.out.println(f2.get(vo));*/ } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchFieldException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- java反射中getDeclaredField和getField的区别
- java 反射 getDeclaredField和getField的区别
- 黑马程序员-JAVA学习之反射getDeclaredField()方法与getField()方法的区别
- getField 和 getDeclaredField 的区别
- java field, property,variable及getField和getDeclaredField的区别
- java反射getDeclaredField和getField的区别
- Java反射之getDeclaredField和getField的区别
- javax.servlet.ServletRequest 的getAttribute(String name)与getParmeter(String name)的区别
- obj.getClass().getName()==String.class.getName()和obj.getClass==String.class的区别
- javax.servlet.ServletRequest 的getAttribute(String name)与getParmeter(String name)的区别
- Java 反射机制中 getMethod()和getDeclaredField()区别
- Java 反射机制中 getMethod()和getDeclaredField()区别
- Java 反照机制中 getMethod()和getDeclaredField()区别
- Java 反射机制中 getMethod()和getDeclaredField()区别
- Java 反射机制中 getMethod()和getDeclaredField()区别
- 浅析 javax.servlet.ServletRequest 的getAttribute(String name)与getParmeter(String name)的区别
- Java 反射机制中 getMethod()和getDeclaredField()区别
- 【整理】getElementByID,getElementsByName,getElemtsByTagName的区别
- Boolean.getBoolean(String name)............. 分类: java 2009-11-12 05:42 1093人阅读 评论(1) 收藏
- getElementById()与getElementsByName()区别