美文网首页
java Class 类与反射机制

java Class 类与反射机制

作者: 王古 | 来源:发表于2019-03-08 09:32 被阅读0次

java.lang.Class

Class 类的构造方法是私有的,只有 Java 虚拟机可以创建该类的对象,因此我们无法在代码中显式地声明一个 Class 对象。

  private Class(ClassLoader loader) {
        classLoader = loader;
    }

构造方法私有,类只能通过以下方法得到 Class 类对象

class AClass{}
AClass aClass1 = new AClass();

通过类的静态成员表示。每个类都有一个隐含的静态成员clas

Class c1 = AClass.class;

通过类对象的 getClass() 方法

Class c2 = AClass1.getClass();

通过 Class 类的静态方法 forName() 方法获取 Class 的对象。

mClass = Class.forName("custom.OtherClass");

Class 类的对象得到类的对象

newInstance() 调用 MyClass 类的无参构造方法。如果 MyClass 类中存在显示的有参构造方法,会覆盖默认的无参构造方法,同时又没有显示的声明无参构造方法,那么执行这段代码时会直接导致程序Crash掉。

AClass aClass2 = (AClass) c2.newInstance();

反射

反射就是加载类,并解剖出类的各个组成部分

  • 在运行时判断任意一个对象所属的类;
  • 在运行时构造任意一个类的对象;
  • 在运行时判断任意一个类所具有的成员变量和方法;
  • 在运行时调用任意一个对象的方法;
  • 生成动态代理。

反射机制的类

java.lang.Class;                
java.lang.reflect.Constructor;
java.lang.reflect.Field;        
java.lang.reflect.Method;
java.lang.reflect.Modifier;

Class类的实例化

package net.xsoftlab.baike;
public class TestReflect {
    public static void main(String[] args) throws Exception {
        Class<?> class1 = null;
        Class<?> class2 = null;
        Class<?> class3 = null;
        // 一般采用这种形式
        class1 = Class.forName("net.xsoftlab.baike.TestReflect");
        class2 = new TestReflect().getClass();
        class3 = TestReflect.class;
        
    }
}

获取对象的父类与接口

Class<?> clazz = Class.forName("net.xsoftlab.baike.TestReflect");
 // 取得父类
Class<?> parentClass = clazz.getSuperclass();

// 获取所有的接口,使用数组存储
Class<?> intes[] = clazz.getInterfaces();

获取全部构造函数

Constructor<?> cons[] = class1.getConstructors();

获取类的全部方法

Class<?> clazz = Class.forName("net.xsoftlab.baike.TestReflect");
Method method[] = clazz.getMethods();

https://m.w3cschool.cn/java/java-reflex.html

相关文章

  • java反射机制与类加载机制

    java反射机制与类加载机制 Class (Java SE 9 & JDK 9 ) - https://docs....

  • [JAVA学习笔记] 反射机制

    [JAVA学习笔记] 反射机制 Java的反射通过Class类和java.lang.reflect类库实现。通过它...

  • java反射机制

    java的反射机制 1 JAVA的反射机制是什么?反射机制能做什么?反射机制的优点与缺点2 认识 Class...

  • Java基础之反射

    Java-Reflect Class类的使用 方法的反射 成员变量的反射 构造函数的反射 Java类加载机制 一、...

  • java反射机制

    java反射机制是为了动态获取类的结构,动态地调用对象的方法 java反射机制 获取类Class对象 A.clas...

  • Java高级-反射

    15.1.Java反射机制概述 15.2.理解Class类并获取Class实例(重点) 用反射实现类的实例化,调用...

  • java Class 类与反射机制

    java.lang.Class Class 类的构造方法是私有的,只有 Java 虚拟机可以创建该类的对象,因此我...

  • Java学习day-23:反射机制

    一、反射机制_Class对象获取: 1.反射机制: 反射机制是java的动态性之一;一个类被加载后,JVM 会创建...

  • JVM的反射实现

    java的反射机制 java的反射机制是在运行状态中,对于任意一个类(Class)都能知道他的属性(Field)和...

  • java 反射

    java反射主要从以下几个方面理解 理解 Class 类 理解 Java 的类加载机制 学会使用 ClassLoa...

网友评论

      本文标题:java Class 类与反射机制

      本文链接:https://www.haomeiwen.com/subject/tkdlpqtx.html