美文网首页
反射之Class类

反射之Class类

作者: 小鱼_a563 | 来源:发表于2021-03-11 20:57 被阅读0次

    Class类

    Class.png

    Class类常用方法

    Class类常用方法.png
    • 通过代码简单解释
    package com.yu.javalearn.reflection;
    
    /**
     * @author 小鱼
     * @version 1.0
     * @date 2021/3/8 11:31 下午
     *  测试Class类的创建方式
     *      1.总共有4种方式
     *      2.通过c1,c2,c3的hashCode我们可以知道,一个类在JVM中只有一个Class
     */
    public class Test01 {
    
        public static void main(String[] args) throws ClassNotFoundException {
            //常规创建一个对象
            Person student=new Student();
            System.out.println(student.name);
    
            //第一种方式:通过具体的对象可以获取到Class类
            Class  c1 = student.getClass();
            System.out.println(c1.hashCode());
            //第二种方式:通过Class的forName()方法,传入类的路径就可以了
            Class c2 = Class.forName("com.yu.javalearn.reflection.Student");
            System.out.println(c2.hashCode());
            //第三中方式:通过类本身可以获取到Class
            Class c3= Student.class;
            System.out.println(c3.hashCode());
            //第四种:通过TYPE获取Class,但是这只使用与java内部的类可以这样使用
            Class<Integer> c4 = Integer.TYPE;
            System.out.println(c4);
            //通过getSuperclass()方法可以获取父类的Class
            Class c5 = c1.getSuperclass();
            System.out.println(c5.hashCode());
        }
    
    }
    
    class Person{
    
        public  String name;
    }
    
    class Teacher extends Person{
    
        public String id;
        public Teacher(){
            this.name="老师";
        }
    }
    class  Student extends  Person{
        public String age;
        public Student(){
            this.name="学生";
        }
    }
    
    • 运行结果
    代码结果.png

    那些类型有Class对象

    class:外部类,成员(成员内部类,静态内部类),局部内部类,匿名内部类。
    interface:接口
    []: 数组
    enum:枚举
    annotation:注解@interface
    primitive type:基本数据类型
    void
    

    相关文章

      网友评论

          本文标题:反射之Class类

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