zoukankan      html  css  js  c++  java
  • java反射

    ★ 每一个对象运行时都有一个对应的Class对象,Class(查API)的获取有三种方式:

    ① 已有对象,调用对象的getClass方法(Object类中的getClass方法)

    ② 类型.class

    ③ 不知道对象,只有对象的全限名字符串Class.forName(String className)

    ★ Class重点掌握方法:

    Class.forName("org.wdl.bean.User"):根据全限名获得Class对象

    newInstance():通过Class创建实例,相当于调用无参数构造器创建实例

    public static void main(String[] args)throws Exception {
            /**
             * 反射介绍:
             *      java反射机制是在运行状态中
             *      对于任意一个类,都能知道该类的所有属性和方法
             *      对于任意一个对象,都能调用他的任意的一个方法和属性
             *      这种动态获取的信息以及动态调用对象的方法的功能称之为java语言的反射机制
             *
             *      想解剖一个类,必须要获取到该类的字节码文件class文件,
             *      二解剖类中的各个成分使用的就是Class类的方法
             *
             *      其实反射就是把java类中的各个成分映射成为一个个的java对象
             */
            //获取class对象的三种方式
            Class<?> clazz1 = Person.class;
            //使用对象的权限定名 ->idea 复制类路径:右键Copy Reference
            Class<?> clazz2 = Class.forName("Person");
            //
            //已有对象,调用对象的getClass方法
            Person person = new Person();
            Class<?> clazz3 = person.getClass();
            System.out.println(clazz1);
            System.out.println(clazz2);
            System.out.println(clazz3);
            /**
             * 输出:
             * class Person
             * class Person
             * class Person
             */
            System.out.println(clazz1==clazz2);//true 表示他们是同一个对象的引用
            Object person1 = clazz1.newInstance();
            Object person2 = clazz2.newInstance();
            Object person3 = clazz3.newInstance();
            System.out.println(person1==person2);//false 表示创建不同的对象的实例
        }
  • 相关阅读:
    省队集训 Day1 残缺的字符串
    省队集训 Day3 吴清华
    省队集训 Day3 陈姚班
    Java多线程中的join方法
    Java多线程同步机制之同步块(方法)——synchronized
    java-实用的sql语句
    java-分页之页面分页
    java下实现调用oracle的存储过程和函数
    java-MySQL存储过程
    MySQL存储过程
  • 原文地址:https://www.cnblogs.com/huanghuanghui/p/10161473.html
Copyright © 2011-2022 走看看