反射的基本介绍和获取Class的实例
获取Class对象的实例
package com.zhujieandfanshe; //获取Class对象的实例 public class TestGetClass01 { public static void main(String[] args) throws ClassNotFoundException { Person person = new Student(); //1.通过对象获取Class Class c1 = person.getClass(); System.out.println(c1.hashCode()); //2.通过forClass Class c2 = Class.forName("com.zhujieandfanshe.Student"); System.out.println(c2.hashCode()); //3.通过类获得Class Class c3 = Student.class; System.out.println(c3.hashCode()); //4.基本内置类的包装类都有一个Type属性,也可以获得对应的Class Class c4 = Integer.TYPE; System.out.println(c4); //5.根据获得的Class获取父类的类型 Class c5 = c1.getSuperclass(); System.out.println(c5); } } class Person { public String name; private int age; //无参构造器 public Person() { } //有参构造器 public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person{" + "name=" + name + + ", age=" + age + }; } } class Student extends Person { public Student() { this.name = "学生"; } } class Teacher extends Person { public Teacher() { this.name = "老师"; } }
哪些类可以有Class对象
哪些类可以有Class的实例
package com.zhujieandfanshe; import java.lang.annotation.ElementType; //哪些类型有Class public class Test02 { public static void main(String[] args) { Class c1 = Object.class; Class c2 = Comparable.class; Class c3 = String[].class; Class c4 = int[][].class; Class c5 = ElementType.class; Class c6 = Override.class; Class c7 = void.class; Class c8 = Integer.class; Class c9 = Class.class; 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); //只要元素类型和维度一样,就对应同一个Class int[] a = {1, 2, 2, 3}; int[] b = {1, 2, 4, 5, 6, 6, 6, 4}; Class c10 = a.getClass(); Class c11 = b.getClass(); System.out.println(c10.hashCode()); System.out.println(c11.hashCode()); } }
上一篇:
JS实现多线程数据分片下载
下一篇:
玩转ECharts制作图表之雷达图