• java反射


    反射:
        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);
         }
    }
  • 相关阅读:
    拓端tecdat| R语言使用Bass模型进行手机市场产品周期预测
    19.纯 CSS 创作一种有削铁如泥感觉的菜单导航特效
    3.div+css 的布局较 table 布局有什么优点
    1.五大浏览器内核
    18.纯 CSS 创作 404 文字变形为 NON 文字的交互特效
    17.1拓展之纯 CSS 创作炫酷的同心圆旋转动画
    17.纯 CSS 创作炫酷的同心矩形旋转动画
    16.纯 CSS 创作一个渐变色动画边框
    15.纯 CSS 创作条形图,不用任何图表库
    14.纯 CSS 创作一种侧立图书的特效
  • 原文地址:https://www.cnblogs.com/anzhi/p/7465127.html
Copyright © 2020-2023  润新知