码迷,mamicode.com
首页 > 编程语言 > 详细

java反射

时间:2017-09-01 22:22:56      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:obj   实例   ati   new   main   logs   包装   返回值   exce   

反射:
    1.获取对应的class对象
        方式1:★
            Class clazz=Class.forName("全限定名");
        方式2:
            Class clazz=类名.class;
        方式3:
            Class clazz==对象.getClass();
        方式4:
             Class c1 = Integer.TYPE;
             返回值是int,基本类型返回的不是包装类
         方式5:
             Class c2 = c1.getSuperclass();
              获取父类的Class对象        
    2.通过class对象创建一个实例对象(相当于  new 类())
        Object clazz.newInstance();
    3.通过class对象获取一个方法(public修饰的)
        Method method=clazz.getMethod("方法名",Class .... paramType);
            paramType为参数的类型
    4.让方法执行:
        method.invoke(Object 实例对象,Object ... 参数);
            Object 实例对象:以前调用方法的对象 就是a
            Object ... 参数:该方法运行时需要的参数 就是 10和30
        执行这个方法 相当于
            a.add(10,30);
        例如:
            method.invoke(a,10,30)
代码演示:
 1 //测试的类
 2 package day8_26.reflect;
 3 
 4 public class Hello {
 5      public void add() {
 6           System.out.println("空参add方法");
 7      }
 8      public void add(int a,int b) {
 9           System.out.println("普通加法add方法");
10           System.out.println(a+b);
11      }
12      public int add(int a) {
13           System.out.println("待返回值的add方法");
14           return a;
15      }
16 }
//演示的类
package day8_26.reflect;

import java.lang.reflect.Method;

public class ReflectDemo {
     //为了展示代码,抛出一个大异常
     public static void main(String[] args) throws Exception {
          //通过反射的方式获取类的字节码对象,传入的参数是全限定名
          Class clazz = Class.forName("day8_26.reflect.Hello");
          //获取实例对象,实际调用的是空参的构造器
          Hello hello = (Hello)clazz.newInstance();
          //获取方法
          Method method = clazz.getMethod("add");
          //运行这个方法,不传参数
          method.invoke(hello);
     }
}

 

java反射

标签:obj   实例   ati   new   main   logs   包装   返回值   exce   

原文地址:http://www.cnblogs.com/anzhi/p/7465127.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!