通过对象反向操作获取类
package com.bitee7;
/*
Name: linrui
Date: 2019/2/12
*/
import java.util.Date;
public class Test1 {
public static void main(String[] args) {
//普通对象,java.util.Date实例化
Date date=new Date();
Class classa=date.getClass();
System.out.println(date.getClass());
System.out.println(classa);
}
}
此时通过对象取得了对象的来源
三种对象实例化 1.new 构造方法 2.反序列化 3.反射
class类的三种获取方式
try {
Date date1=(Date) classa.newInstance();
System.out.println(date1);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
//一般在反射中,常使用类的全限定名 包名+类名
Class<java.util.Date> dateClass=Date.class;
System.out.println(dateClass);
try {
Date date2=(Date) classa.newInstance();
System.out.println(date2);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
try {
Class dateClass1= Class.forName("java.util.Date");
System.out.println(dateClass1);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}