`

Java 反射机制中 getMethod()和getDeclaredField()区别

阅读更多
今天在程序中用到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 对象所表示的类或接口所声明的所有字段,包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。
分享到:
评论
6 楼 308202251 2012-08-17  
308202251 写道
308202251 写道
308202251 写道
308202251 写道
308202251 写道





5 楼 308202251 2012-08-17  
308202251 写道
308202251 写道
308202251 写道
308202251 写道




4 楼 308202251 2012-08-17  
308202251 写道
308202251 写道
308202251 写道



3 楼 308202251 2012-08-17  
308202251 写道
308202251 写道


2 楼 308202251 2012-08-17  
308202251 写道

1 楼 308202251 2012-08-17  

相关推荐

    java反射机制,调用私有方法

    Method,invoke,getMethod等反射私有方法和私有属性

    Java 反射(Reflection) 经典实用例子

    Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射。反射机制是如今很多流行框架的实现基础,其中包括Spring、Hibernate等。原理性的问题不是本文的重点,接下来让我们在实例中...

    Java反射方法调用

    调用空参方法 调用Object类型参数的方法 调用基本类型参数的方法 调用数组参数的方法 调用私有方法

    Java反射封装库joor.zip

    jOOR 在java原生的反射基础上进行了简单的封装,使得反射使用方便不少! 举个简单的列子,供大家参考。 java 原生反射写法: try { Method m1 = department.getClass().getMethod("getEmployees"); Employee ...

    xml与反射.txt

    有了java反射机制,什么都好办了,只需要写一个dao类,四个方法,增删改查,传入不同的对象,就OK啦,无需为每一个 表都创建dao类,反射机制会自动帮我们完成剩下的事情,这就是它的好处。说白了,反射机制就是专门...

    java通过HTTP调用接口(Get请求和Post请求)

    java调用HTTP接口(Get请求和Post请求)

    JAVA发送HttpClient请求及接收请求完整代码实例

    NULL 博文链接:https://bijian1013.iteye.com/blog/2310211

    Java 高级特性.doc

    Method charAt = Class.forName("java.lang.String").getMethod("charAt", int.class); System.out.println(charAt.invoke(str, 1)); ------------------------- 讲Field //成员变量 ReflectPoint point = new ...

    day021-反射和注解笔记和代码.rar

    3、Class的实例就看成是Java中我们学过的所有的数据类型在JVM中存在的一种状态(字节码对象) String.class int.class List.class int[].class 1.概念:通过一个全限定类名,获取字节码文件 2...

    01:详解C#中的反射.pdf

    反射是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息。有了反射,即可对每一个类型了如指掌。另外我还可以直接创建对象,即使这个...

    java 面试题 总结

    assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...

    水木清华站∶Java版精华区 含jsp及js等集合.chm

    [目录]Java中的类型转换 4. [目录]怎样找到编译时缺少的类 2. [目录]Java疑难解答 1. [目录]Java原理问题 1. [目录]Java中是指针还是引用? 2. [目录]关于getMethod方法 3. [目录]...

    JAVA调用HTTP及httpclient的详细说明

    JAVA调用HTTP及httpclient的详细说明,包括HttpClient Post/GetMethod 转码方案汇总,使用httpclient实现http接口调用实例,含具体代码

    \java超强笔记(超级经典)

    四种元注释:java.lang.annotation中的类 元注释:注释注释的注释,用来限定注释的特征 @Terget 用来限定某个注释的使用范围,可以对什么元素进行注释 @Retention 用来描述注释的有效范围 @Inherited ...

    jface开发的几个包都在里面了

    at java.lang.Class.getMethod0(Unknown Source) at java.lang.Class.getMethod(Unknown Source) at sun.launcher.LauncherHelper.getMainMethod(Unknown Source) at sun.launcher.LauncherHelper....

    Java中的反射(二)

    反射必会方法 继上篇,总结整理: Method成员方法涉及到的方法 Field成员变量涉及到的方法 给予暴力反射私有化内容的权限操作 1.Method成员方法涉及到的方法 通过Class对象来获取Method对象,需要考虑的内容有: ...

    超级有影响力霸气的Java面试题大全文档

    assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...

    class.getMethods()

    NULL 博文链接:https://sxk4429.iteye.com/blog/645624

    个人java总结笔记

    Class 对象由Java虚拟机在使用到该类的时候,自动创建; Class 对象的三种获取方式: 1: Class.forName(“全类名”); 2:类对象名.getClass(); 3:类名.Class(); 通过Class 对象获得类的指定成员,构造方法 构造方法...

    JAVA程序员面试题

    Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。 ...

Global site tag (gtag.js) - Google Analytics