java 反射机制

来源:互联网 发布:淘宝 爱奇艺会员多少钱 编辑:程序博客网 时间:2024/06/05 02:54

看吧:

import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class TestReflection {public static void main(String [] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {String str = "T";// 把名字为T的类加载进来Class c = Class.forName(str);// 类实例化成对象Object o = c.newInstance();// 看类里面有多少个方法 Method[] methods = c.getMethods();for(Method m: methods) {// 显示方法名字//System.out.println(m.getName());// 调用类里面的方法if(m.getName().equals("mm")) {m.invoke(o);}// 类里面方法参数传递if(m.getName().equals("m1")) {m.invoke(o, 1, 2);// 如何知道类方法的参数类型for(Class paramType : m.getParameterTypes()) {System.out.println(paramType.getName());} }// 如何知道方法的返回值 类型if(m.getName().equals("getS")) {Class returnType = m.getReturnType();System.out.println(returnType.getName());}}}}class T {int i;String s;//判断类T 是否加载进来static {System.out.println("class T has loaded!!!");}// 判断 类T是否实例化成功public T() {System.out.println("class T has instanced successfully!!!");}public void m1(int i, int j) {this.i = i+j;System.out.println(this.i);}public void mm() {System.out.println("mm invoked 被调用了!!!");}public String getS(String s) {return s;}}


原创粉丝点击