Java 反射机制中 getMethod()和getDeclaredField()区别
2014-03-15 10:47
633 查看
今天在程序中用到java反射机制时,遇到的问题记录一下:我当时遇到的问题是,我用反射getMethod()调用类方法时,发生 NoSuchMethodException异常,后来上网发现getMethod()调用公共方法,不能反射调用私有方法,后来找到 getDeclaredField()能够访问本类中定义的所有方法。后来用这个方法解决了我遇到的问题。我查了java
api文档,其中详细说明如下:
Method getDeclaredMethod(String name, Class… parameterTypes)d
返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法。
Method[] getDeclaredMethods()
返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
Method getMethod(String name, Class… parameterTypes)
返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。
Method[] getMethods()
返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法。
getDeclaredField(String name)
返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段。
Field[] getDeclaredFields()
返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段,包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。
api文档,其中详细说明如下:
Method getDeclaredMethod(String name, Class… parameterTypes)d
返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法。
Method[] getDeclaredMethods()
返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
Method getMethod(String name, Class… parameterTypes)
返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。
Method[] getMethods()
返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法。
getDeclaredField(String name)
返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段。
Field[] getDeclaredFields()
返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段,包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。
相关文章推荐
- Java 反射机制中 getMethod()和getDeclaredField()区别
- Java 反射机制中 getMethod()和getDeclaredField()区别
- Java 反射机制中 getMethod()和getDeclaredField()区别
- Java 反射机制中 getMethod()和getDeclaredField()区别
- Java 反射机制中 getMethod()和getDeclaredMethod()区别
- Java 反射机制中 getMethod()和getDeclaredMethod()区别
- Java 反照机制中 getMethod()和getDeclaredField()区别
- 黑马程序员-JAVA学习之反射getDeclaredField()方法与getField()方法的区别
- Java反射之getDeclaredField和getField的区别
- Java反射代码 得到某类的所有字段 getFields()与getDeclaredFields()区别 getMethod()和getDeclaredMethod()区别
- Java 反射(Reflection) - Class 类 getMethod、getMethods、getDeclaredMethod、getDeclaredMethods四者区别
- java反射中getDeclaredField和getField的区别
- java 反射 getDeclaredField和getField的区别
- Java反射代码 得到某类的所有字段 getFields()与getDeclaredFields()区别 getMethod()和getDeclaredMethod()区别
- java 反射机制 之 getDeclaredField 获取私有保护字段, 再setAccessible(true)取消对权限的检查 实现对私有的访问和赋值
- java反射getDeclaredField和getField的区别
- java反射之Class.getMethod与getDeclaredMethods()区别
- JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别 关于获取类的字段有两种方式:getFields()和getDeclaredFields()
- JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
- JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别