反射:获取类中的方法
来源:互联网 发布:能装windows的平板 编辑:程序博客网 时间:2024/06/11 01:21
1.使用反射获取类中的方法
1):获取方法所在类的字节码对象.2):获取方法.
------------------------------------------------------------------------
Class类中常用方法:
public Method[] getMethods():获取包括自身和继承过来的所有的public方法
public Method[] getDeclaredMethods():获取自身类中所有的方法(不包括继承的,和访问权限无关)
public Method getMethod(String methodName,Class<?>... parameterTypes):表示调用指定的一个公共的方法(包括继承的)
参数:
methodName: 表示被调用方法的名字
parameterTypes:表示被调用方法的参数的Class类型如String.class
public Method getDeclaredMethod(String name,Class<?>... parameterTypes):表示调用指定的一个本类中的方法(不包括继承的)
参数:
methodName: 表示被调用方法的名字
parameterTypes:表示被调用方法的参数的Class类型如String.class
User类
public class User {public void doWork() {}public static void doWork(String name) {}private String sayHello(String name, int age) {return name + "," + age;}}测试:
import java.lang.reflect.Method;import org.junit.Test;public class GetMethodDemo {//获取User中指定的方法@Testpublic void getOne() throws Exception {Class<User> userClass = User.class;//获取doWork()Method method1 = userClass.getMethod("doWork");System.out.println(method1);//public void _04getMethod.User.doWork()//获取doWork(String name)Method method2 = userClass.getMethod("doWork", String.class);System.out.println(method2);//public static void _04getMethod.User.doWork(java.lang.String)//获取private sayHello(String name, int age)Method method3 = userClass.getDeclaredMethod("sayHello", String.class,int.class);System.out.println(method3);//private java.lang.String _04getMethod.User.sayHello(java.lang.String,int)}//获取User中所有的方法@Testpublic void getAll(){Class<User> userClass = User.class;//获取包含继承父类的所有公共方法Method[] methods1 = userClass.getMethods();for (Method method : methods1) {System.out.println(method);/** * 打印结果:全是公共的方法,包括自己的和父类的 * public void _04getMethod.User.doWork()public static void _04getMethod.User.doWork(java.lang.String)public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedExceptionpublic final native void java.lang.Object.wait(long) throws java.lang.InterruptedExceptionpublic final void java.lang.Object.wait() throws java.lang.InterruptedExceptionpublic boolean java.lang.Object.equals(java.lang.Object)public java.lang.String java.lang.Object.toString()public native int java.lang.Object.hashCode()public final native java.lang.Class java.lang.Object.getClass()public final native void java.lang.Object.notify()public final native void java.lang.Object.notifyAll() */}System.out.println("================================");//获取自己本类的所有方法Method[] methods2 = userClass.getDeclaredMethods();for (Method method : methods2) {System.out.println(method);/** * 打印结果:只是自己本类中的所有方法,包括私有的 * private java.lang.String _04getMethod.User.sayHello(java.lang.String,int)public void _04getMethod.User.doWork()public static void _04getMethod.User.doWork(java.lang.String) */}}}
阅读全文
0 0
- 反射:获取类中的方法
- 通过反射获取相关类中的方法声明
- php反射获取类及方法中的注释
- php反射获取类及方法中的注释
- php反射获取类和方法中的注释
- 反射方式获取父类中的所有属性和方法
- 反射机制--获取Class中的方法
- 28-反射机制-06-反射机制(获取Class中的方法)
- 利用反射获取一个类中的所有方法和该方法的参数
- 反射指定类中的方法
- Java笔记:[反射篇] 利用反射,获取类中的私有内部类对象,并调用该对象的方法
- 反射机制实例化类,并获取类中的属性、方法、和构造器
- java反射:获取父类中的所有属性和方法工具类
- java反射:获取父类中的所有属性和方法工具类
- Java反射获取父类中的元素
- 反射:获取类中的构造器
- 用反射的方式获取父类中的所有属性和方法
- Java 编程下通过反射获取一个类中的方法名和对应参数名
- Netty 4.0 源码分析(四):ByteBuf
- java.nio.ByteBuffer中flip、rewind、clear方法的区别
- Java中泛型的协变
- Cocos2d-x 3.2在mac下android的环境配置
- Java中native关键字
- 反射:获取类中的方法
- Linux下用户组、文件权限详解
- Java中解决浮点数精度的问题
- https协议简析
- 一种手游中实时战斗系统的设计思路
- Vue与axios整合时,访问Vue实例
- Android 状态选择器的使用
- Linux/Unix IO多路复用之select网络编程基本代码
- 利用Python/C语言解决分鱼问题