Files
javaSE-0113/javaSE-day12/src/com/inmind/refelct02/Demo02.java

38 lines
1.5 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.inmind.refelct02;
/*
反射:在程序运行时,操作类(构造方法,成员方法,成员变量)
反射前提是Class对象
--------------------------------------------------
Class对象的三种获取方式
1.Class.forName("全类名") 常用于框架的初始化操作jdbc注册驱动
全类名:包名+类名
2.类名.class 常用于反射API中作为参数
3.对象名.getClass() 常用于类型判断
*/
public class Demo02 {
public static void main(String[] args) throws ClassNotFoundException {
//Class对象的获取方式一
Class<?> clazz1 = Class.forName("com.inmind.refelct02.Student");
System.out.println(clazz1);
//Class对象的获取方式二
Class<Student> clazz2 = Student.class;
System.out.println(clazz2);
//Class对象的获取方式三
Student s = new Student();
Class<? extends Student> clazz3 = s.getClass();
System.out.println(clazz3);//Class类中toString重写过了
//注意一个类的字节码文件只有一个与之对应的描述对象也只有一个那么clazz1、clazz2、clazz3其实是同一个对象
System.out.println(clazz1 == clazz2);//true
System.out.println(clazz3 == clazz2);//true
//Class对象的常用方法
System.out.println(clazz1.getName());//全类名com.inmind.refelct02.Student
System.out.println(clazz1.getSimpleName());//类名Student
}
}