zoukankan      html  css  js  c++  java
  • 反射

    概述

    反射(reflection)

    Java的反射是指程序在运行期可以拿到一个对象的所有信息

    使用方法

    获取对象有四种方法

    实例

    public class Demo02 {
        public static void main(String[] args) throws ClassNotFoundException {
            Student student = new Student();
            System.out.println("这个人是: "+student.name);
    
    //        方式一 通过对象获得
            Class c1 = student.getClass();
            System.out.println(c1.hashCode());
    //        方式二 forname获得
            Class c2 = Class.forName("com.gbhh.reflections.Student");
            System.out.println(c2.hashCode());
    //        方式三 通过类名.Class获得
            Class c3 = Student.class;
            System.out.println(c3.hashCode());
    //        方式四 内置类型的包装类都有一个Type属性
            Class c4 = Integer.TYPE;
            System.out.println(c4);
    //        获取父类类型
            Class c5 = c1.getSuperclass();
            System.out.println(c5);
        }
    }
    class Person{
        String name;
    
        public Person() {
        }
    
        public Person(String name) {
            this.name = name;
        }
    }
    class Student extends Person{
        public Student() {
            this.name = "学生";
        }
    }
    class Teacher extends Person{
        public Teacher(){
            this.name = "老师";
        }
    }
    

    所有类型的Class对象

    public class Demo03 {
        public static void main(String[] args) {
            Class c1 = Object.class;        //类
            Class c2 = Comparable.class;    //接口
            Class c3 = String[].class;      //一维数组
            Class c4 = int[][].class;       //二维数组
            Class c5 = Override.class;      //注解
            Class c6 = ElementType.class;   //枚举
            Class c7 = Integer.class;       //基本数据类型
            Class c8 = void.class;          //void
            Class c9 = Class.class;         //Class
    //        按住alt垂直选择,复制粘贴同一列的数据
            System.out.println(c1);
            System.out.println(c2);
            System.out.println(c3);
            System.out.println(c4);
            System.out.println(c5);
            System.out.println(c6);
            System.out.println(c7);
            System.out.println(c8);
            System.out.println(c9);
    
        }
    }
    
  • 相关阅读:
    c#泛型的使用
    关于Asp.net无法写入输出文件的原因
    利用OLEDB导出数据到Excel
    中秋祝福
    C#获取当前域用户名
    【程序员必读】骨灰级程序员20条编程经验
    SQL SERVER 2005无法远程连接的问题
    ASP.Net 实现伪静态方法及意义
    js+ajax获取文件大小
    C#遍历指定文件夹中的所有文件
  • 原文地址:https://www.cnblogs.com/gbhh/p/13768131.html
Copyright © 2011-2022 走看看