-
Class.forName("类的全称") ·不仅表示了类的类类型,还代表了动态加载类 ·请大家区分编译、运行 ·编译时刻加载类是静态加载类,运行时刻加载类是动态加载类 --> new创建对象:是静态加载类,在编译时刻就需要加载所有的【可能使用到的类】。有一个类有问题(如不存在),都不能通过编译,会报错。 --> Class.forName()通过动态加载类,可以用到一个类时,才进行加载。 【功能性的类尽量使用动态加载,并对新添的类实现功能性接口(标准),这样就不用重新编译】查看全部
-
Class类. Class.forName("类的全称")查看全部
-
关于Class类查看全部
-
1)在面向对象的世界里,万事万物皆对象。 java语言中,静态的成员、普通数据类型是不是对象呢?类是谁的对象呢? ...类是对象,类是java.lang.Class类的实例对象 2)这个对象到底如何表示 有三种表示方式, 以class Foo为例,Foo这个类 也是一个实例对象,Class类的实例对象,如何表示呢? 【方式一】 Class c1 = Foo.class; //第一种表示方式 --->实际在告诉我们任何一个类都有一个隐含的静态成员变量 【方式二】 Class c2 = foo1.getClass(); //第二种表达方式,已经知道该类的对象通过getClass方法 /*官网 c1,c2表示了Foo类的类类型(class type) * 万事万物皆对象, * 类也是对象,是class类的实例对象 * 这个对象我们成为该类的类类型 * */ ##不管c1 or c2 都代表了Foo类的类类型,一个类只可能是Class类的一个实例对象 System.out.println(c1 == c2); //输出结果为true 【方式三】 c3 = Class.forName("com.imooc.reflect.Foo"); (要try..catch捕获异常) ☞通过类的类类型创建该类的对象实例 我们完全可以通过类的类类型创建该类的对象实例 --->通过c1或c2或c3创建Foo的实例对象 !!前提要有无参数的构造方法 Foo foo = (Foo)c1.newInstance();查看全部
-
类是对象,它是java.lang.Class的对象查看全部
-
方法的反射 1获取类类型Class c=a1.getClass(); 2获取方法Method b=c.getMethod(); 3方法的反射(方法的调用)b.invoke();查看全部
-
类类型的创建 Class c=Foo.class//Foo为一个类 Class c=fool.getClass()//fool为Foo类的一个对象 Class c=Class.forName();查看全部
-
动态加载类Class c=class.forName(); 通过类类型,创建类对象 Book a=c.newInstance(); 静态加载类在编译时加载,动态加载类在运行时加载查看全部
-
编译之后的集合是去泛型化的,java中集合的泛型是为了防止错误输入的,集合的泛型只在编译阶段有效,绕过编译就无效了查看全部
-
获取所有声明的成员变量信息查看全部
-
第一种表达方式:Class c1=Foo.class; 第二种表达方式:Class c2=Foo.getClass(); 第三种表达方式:Classc c3=null; c3=Class.forName("类的全名"); c1=c2=c3<br> 官网 c1,c2表示了Foo类的类类型 万事万物皆对象,类也对象,是class类的对象实例,这歌对象我们称为类的类类型查看全部
-
静态加载类:new 在编译时加载类,全部加载完成才能实现功能 动态加载类:在运行时加载类查看全部
-
第一种表达方式:Class c1=Foo.class;<br> 第二种表达方式:Class c2=Foo.getClass();<br> 第三种表达方式:Classc c3=null;<br> c3=Class.forName("类的全名");<br> c1=c2=c3<br> 官网 c1,c2表示了Foo类的类类型<br> 万事万物皆对象,类也对象,是class类的对象实例,这歌对象我们称为类的类类型查看全部
-
反射与集合查看全部
-
动态加载类,定义并实现接口查看全部
举报
0/150
提交
取消