zoukankan      html  css  js  c++  java
  • JAVA中的反射()

    java中取得类对象的方法有三种

    1.getClass();但是缺点就是如果没有类,就会出错,然后编译不过

    2.class.forname("包+类");//如果没有类,此方法也不会报错,但在运行时会出错

    3.包+类.class

    利用反射实例化

    Class<?> cls = Class.forName("类+包");
    Object obj = cls.newInstance();

    取得类所在的包:

         getPackage();//返回-- 类型 包名
    getPackage().getName();//返回包名

    取得类名:

    class.getName(); //返回包名称+类名称
    class.getSimpleName();//返回类名称

    取得父类:

    class.getSuperClass.getSimpleName();

    取得类接口:

    Class<?> cls [] = cls.getInterfaces();
    for(...){
        cls[i].getSimpleName();
    }

    取得构造方法:

    java.lang.reflect包下:
    getConstructors();//返回所有构造
    getConstructor(param);//返回指定构造
    constructors.getModifiers();//获取方法修饰符
    constructors.getName();//获取构造方法名称
    constructors.getParameterCount();//获取构造方法参数个数
    constructors.getParameterTypes();//获取构造方法的参数类型
    constructors.getExceptionTypes();//获取构造方法的异常类型

    取得方法:

    getMethods();//获取类中所有方法
    getMethod(name,Class<?>);//获取指定方法
    两者都返回java.lang.reflect.Method;
    getName();//返回方法名称
    getModifiers();//返回方法修饰符
    getParameterTypes();//返回参数类型
    invoke(object,object...);//调用指定方法,调用时要有实例化对象,然后再设置参数;
    getReturnType();//返回值类型
    getDeclaredMethods();//获取本类中的方法
    ...
  • 相关阅读:
    执行truncate引发ORA-02266的问题分析
    一文搞懂MySQL-8.0 redo优化
    写给迷茫中的大一大二的学弟学妹,学渣逆袭中的个人经历与心得
    99+好友共同关注,公众号推荐
    Cesium
    Cesium
    Cesium
    Cesium
    虚拟化学习笔记-KVM虚拟化跨机迁移原理
    虚拟化学习笔记-KVM虚拟化跨机迁移原理
  • 原文地址:https://www.cnblogs.com/javage/p/9311350.html
Copyright © 2011-2022 走看看