-
运行环境:
JDK8 + IntelliJ IDEA 2018.3
-
jar包链接:
https://files.cnblogs.com/files/papercy/jsoup_jar%E5%8C%85.rar
-
源码:
package com.ChenJiangT.Work1; import java.util.ArrayList; import java.util.List; public class Work1 { /** * @param args */ public static void main(String[] args) { Class clz= List.class; System.out.println("***************List相关信息:***************"); System.out.println("类名:"+clz.getName()); System.out.println("包名:"+clz.getPackage()); System.out.println("是否为接口:"+clz.isInterface()); System.out.println("是否为基本类型:"+clz.isPrimitive()); System.out.println("是否为数组:"+clz.isArray()); System.out.println("获得父类的Class对象:"+clz.getSuperclass()); clz=new ArrayList().getClass(); System.out.println("***************List接口指向ArrayList时的相关信息:***************"); System.out.println("类名:"+clz.getName()); System.out.println("包名:"+clz.getPackage()); System.out.println("是否为接口:"+clz.isInterface()); System.out.println("是否为基本类型:"+clz.isPrimitive()); System.out.println("是否为数组:"+clz.isArray()); System.out.println("获得父类的Class对象:"+clz.getSuperclass()); } }
-
运行效果图:
-
源码:
package com.ChenJiangT.Work3;
public class Work3 {
public static void main(String[] args) throws ClassNotFoundException{
Class clz;
ClassLoader c1,c11;
System.out.println("1---------------------------------------------");
//得到系统类加载器
c1=ClassLoader.getSystemClassLoader();
System.out.println(c1);
//输出其父加载器
while (c1!=null){
c11=c1;
c1=c11.getParent();
System.out.println(c11+"的父加载器是:"+c1);
}
System.out.println("2-----------------");
clz=Class.forName("java.lang.Object");
c1=clz.getClassLoader();
System.out.println("加载Object类的类加载器是:" + c1);
System.out.println("3-----------------");
clz=Work3.class;
c1=clz.getClassLoader();
System.out.println("加载当前类的类加载器是:" + c1);
}
}
-
效果图:
-
总结:
一.在JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.reflect包中:
1). Class类:代表一个类。 Field 类:代表类的成员变量(成员变量也称为类的属性)。
2).Method类:代表类的方法。 Modifier类:代表修饰符。
3).Constructor 类:代表类的构造方法。
4). Array类:提供了动态创建数组,以及访问数组的元素的静态方法。
二.Class中的常用方法(获得类的构造方法)
1).getConstructors():获得类的所有的public类型的构造方法。
2).getDeclaredConstructors():获得类所有的构造方法
3)getConstructor(Class[] parameterTypes):获得类的特定public的构造方法,
4).parameterTypes 参数指定构造方法的参数类型。
5).getDeclaredConstructor(Class[] parameterTypes):获得类指定的所有的构造方法