开发者学堂课程【Java 面试疑难点串讲1:面试技巧及语言基础:反射参数】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/24/detail/505
反射参数
内容介绍
一.构造方法与Class
一.构造方法与Class
在构造方法里面进行调用的时候为什么要使用“类.class”,而不使用“对象.getClass()”
Class 实际上主要去表示一个类的结构,例如: Date 有 Class 类、String 也有与之匹配的 Class 类,而获得了 Class 类就相当于获得了类的操作权限,哪怕获得的时候没有实例化对象存在,这个时候也可以操作的。
package vshop;
import java. util.Date;
class Member {
public Member(Date date) {}
public Member(Class<?> cls) { // 可以传递任何的Class类对象//在这个构造方法里面,如果你接收了Class对象,那么只表示类的描述,但是不表示类的具体对象.
//
如果要想使用指定类型的对象,则还需要通过cls.newInstance()实例化public class Demo {
public static void main(String[] args) throws Exception {
Member mem = new Member(Date.class);//Class类对象有三种实例化方式Member memB = new Member(String. class) ;
Date date = new Date() ;
//你必须有一个明确的Date类的实例化对象Member temp = new Member(date);// object类定义的方法
}
注:一般使用 getClass() 方法的时候都会在某一个方法里面需要通过反射获取对象结构的时候使用。