尊敬的李老师:
我是您忠实的读者,在学java中对您的 《Java开发实战经典》推崇备至,并向同学推荐了此书,有7个同学购后,给予跟高评价 我个人理解反射中,所有类也是一个对象,是Class类的实例,即类对象,而李老师在该书中提到
1、所有类的对象是Class类的实例
2、Class类是一个类的本身
另外,说是Class.forName(”包名.类名“)比类名.class,类名.getClass()常用,是因为前者可以传入字符串形式,后两个需要一个明确的类, 我个人理解是前者字符串形式的全称类名,后两个就可在使用时,导包 import 包名.类名,也就可以了。
不太理解,请赐教!
李老师:您好,你说的意思,我懂。我想弄明白的是:所有类是Class类的实例,还是所有类的对象是Class类的实例(正如Java实战开发经典中所说),我理解是前者。
另外,我查阅一些资料,说Class.forName()在编译阶段可以不需要类已经写完,就可通过编译,在运行时,写完即可。我尝试了一下,以org.cdp.Person类为例,不写,Class.forName(“org.cdp.Person”);编译报错。您不需要解说高深的,我就想明白上面一点和这个Class.forName()最方便在哪
我个人理解2中不是说class.forName 以外的两种方式需要明确的类,因为它的包名.类名,一样明确。其他两种方法,如果导包是一步,实例化是一步,共两步,而这个只需要一步,所以class.forName省了一步,方便
李老师,讲出了反射的作用,可偏离了我疑惑的1及2两点