zoukankan      html  css  js  c++  java
  • Java中通过Class的反射来获取方法

    本文转自:http://z3sm2012.iteye.com/blog/1933227

    今天在程序中用到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 对象所表示的类或接口所声明的所有字段,包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。

  • 相关阅读:
    电脑硬盘坏了如何恢复重要的资料?
    js删除数组里的某个元素
    仅当使用了列的列表 并且 identity_insert 为 on 时 才能在表 中为标识列指定显式值
    data source 和initial catalog
    如何从一个表的数据复制到另一个表里面(二个库不在同一台电脑上)
    为什么编程语言以及数据库要从1970年1月1日开始计算时
    关于1970-1-1 00:00.000的知识
    C/S ASP.NET页面传值汇总
    SQL高级查询的练习题
    经典SQL练习题
  • 原文地址:https://www.cnblogs.com/fpqi/p/9618453.html
Copyright © 2011-2022 走看看