-
第一种表示方式: Class c1 = Foo.class;//任何一个类都有一个隐含的静态成员变量class 第二种表示方式: Class c2 = foo1.getClass//已知该类的对象,通过getClass方法得到这个实例类的class(类类型) 第三种表达方式 Class c3 = Class.forName("imooc.reflect.Foo"); <可以通过类类型创建该类的类对象> Foo foo=(Foo)c1.newInstance();查看全部
-
万事万物都有名字,好像就是名字的意思查看全部
-
c1和c2相等查看全部
-
反射是绕过编译的。 集合的泛型只为了防止错误输入,编译阶段有效,绕过编译,使用反射是不会控制集合中的数据类型的。 方法的反射使用: Class c1=对象a.getClass() Method m = c1.getMethod(方法名,参数列表) Object o =m.invoke(对象a,参数列表,可以一一列举,也可以用数组)查看全部
-
泛型集合的泛型只在编译阶段有效查看全部
-
泛型只是一个门槛而已,非泛型类型是可以走后门进入泛型集合的。通过反射查看全部
-
getDeclaredMethod*()获取的是类自身声明的所有方法,包含public、protected和private方法。 getMethod*()获取的是类的所有共有方法,这就包括自身的所有public方法,和从基类继承的、从接口实现的所有public方法。查看全部
-
一、反射的操作都是编译之后的操作(Class类,Method类,Field类等,通俗理解为class是字节码) 二、Java中集合的泛型,是防止错误输入的,只在编译阶段有效 三、可以通过方法的反射操作,绕过编译查看全部
-
方法的反射 1)如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法 2)方法反射的操作 method.invoke(对象,参数列表)查看全部
-
要获得任何一个类的信息,首先要获得该类的类类型查看全部
-
厉害了查看全部
-
基本的数据类型、void关键字,都存在类类型查看全部
-
Class.forName("类的全称") 1.不仅表示了类的类类型,还代表了动态加载类 ***注意区分编译和运行 2.编译时刻加载类是静态加载类,运行时刻加载类是动态加载类 3.因此,功能性的类尽可能采用动态加载,而不是静态加载查看全部
-
1)在面向对象的世界里,万事万物皆对象。(静态成员、普通数据类型) 类是对象,类是java.lang.Class类的实例对象 2)这个对象的表示方式有三种: 第一种表示方式:任何一个类都有一个隐含的静态成员变量class 第二种表示方式:已知该类的对象,通过getClass方法 第三种表示方式:通过Cass.forName("类的全称"); 3)可以通过类的类类型创建该类的对象实例 类类型.newInstance(),创建的实例对象需要强制类型转换为类类型对应的类,而且该类必须包含无参数的构造方法查看全部
-
refactor可以将方法体中的一部分拿出来,单独的成一个方法查看全部
举报
0/150
提交
取消