java反射调用方法

来源:互联网 发布:mac最好的音乐播放器 编辑:程序博客网 时间:2024/05/18 17:01

1:Class类中的方法

public Method getDeclaredMethod(String name,                                Class<?>... parameterTypes)                         throws NoSuchMethodException,                                SecurityException
参数:
name - 方法名
parameterTypes - 参数数组
返回:
该类与指定名和参数相匹配的方法的 Method 对象 

2:Method类中的方法;

public Object invoke(Object obj,                     Object... args)              throws IllegalAccessException,                     IllegalArgumentException,                     InvocationTargetException
参数:
obj - 从中调用底层方法的对象
args - 用于方法调用的参数
返回:
使用参数 argsobj 上指派该对象所表示方法的结果 3:hello world!级别的反射调用:

package com.dao.Text;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class TetsReflect {/** * @param args * @throws NoSuchMethodException * @throws SecurityException * @throws InvocationTargetException * @throws IllegalAccessException * @throws IllegalArgumentException */public static void main(String[] args) throws SecurityException,NoSuchMethodException, IllegalArgumentException,IllegalAccessException, InvocationTargetException {Person p = new Person();Class cla = p.getClass();// 1:无参数Method method1 = cla.getDeclaredMethod("print");method1.invoke(p);// 2:有参数的调用Method method2 = cla.getDeclaredMethod("printParameter", String.class);method2.invoke(p, "hello world!!");}}class Person {public void print() {System.out.println("hello world!!"+"没有参数反射方法的调用");}public void printParameter(String param) {System.out.println(param+"有参数的反射方法的调用");}}

结果:

hello world!!没有参数反射方法的调用
hello world!!有参数的反射方法的调用

1 0
原创粉丝点击