zoukankan      html  css  js  c++  java
  • 反射①:如何获取class对象六种方法

    获取class对象的六种方法

    了解:class类——是Java反射机制的入口,封装了一个类或接口的运行信息,通过调用Class类的方法可以获取这些信息,其特点如下:

    1、该类在java.lang包中;

    2、该类被final所修饰,即该类不可以被子类继承

    3、该类实现了Serializable接口

    4、该类的构造方法被private所修饰,所以不能通过new关键字创建该类的对象

    ①先创建一个类

    //创建一个Student类
    package com.zzj.vo;
    
    public class Student {
    
        public String name;
        
        public Student(){
            
        }
        
        public Student(String name){
            this.name = name;
        }
        
        public void doHomework(){
            System.out.println(name+"正在写作业...");
        }
        
    }

    ②测试获取对象

    第一种:Class.forName方法获取

    Class clazz = null;
    try {
            clazz = Class.forName("com.zzj.vo.Student");
            System.out.println(clazz.getName());
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
    }        
    //输出结果为com.zzj.vo.Student

    第二种:类名.class方法获取

    clazz = Student.class;
    System.out.println(clazz.getName());
    //输出结果为com.zzj.vo.Student

    第三种:对象.getClass()

    clazz = new Student().getClass();
    System.out.println(clazz.getName());
    //输出结果为com.zzj.vo.Student

    第四种:基本数据类型对应的class对象:包装类、TYPE

    clazz = Integer.TYPE;
    System.out.println(clazz.getName());//输出int
    clazz = Integer.class;
    System.out.println(clazz.getName());//输出java.lang.Integer

    第五种:数组类型对应的class:元素类型[].class

    clazz = String[].class;
    System.out.println(clazz.getName());
    //输出结果为[Ljava.lang.String;

    第六种:某个类父类所对应的的class对象

    clazz = Student.class.getSuperclass();
    System.out.println(clazz.getName());
    //输出结果为java.lang.Object
  • 相关阅读:
    图书-哲学-奥卡姆剃刀:《奥卡姆剃刀原理》
    汉语-词语-认知:认知能力
    汉语-词语-认知:认知水平
    汉语-词语:认知
    pg_dump
    pg_ctl
    pg_controldata
    pg_config
    paste
    passwd
  • 原文地址:https://www.cnblogs.com/yimengxianzhi/p/12160355.html
Copyright © 2011-2022 走看看