为了账号安全,请及时绑定邮箱和手机立即绑定

反射——Java高级开发必须懂的

难度入门
时长 1小时20分
学习人数
综合评分9.67
759人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 代码格式
    查看全部
  • Class c2 = String.class; String 类的类类型,String 类的字节码 Class c5=void.class 基本的数据类型 void关键字,都存在类型 JNI 本地方法 获取类的成员函数,成员变量 Class c = obj.getClass(); c.getName();l类型的全称 Method[] ms = c.getMethods(); Method类,方法对象,一个成员方法i碔Method对象 c.getDeclareMethods();获取的是所有该类自己声明的方法,不问访问权限 Class returnType = ms[i].getReturnType()//得到方法的返回值类类型 ms[i].getName()得到方法的名称
    查看全部
  • 课程内容
    查看全部
    0 采集 收起 来源:Class类的使用

    2014-11-18

  • Class.forName("类的全称") 1、类类型,2、代表了动态加载类 编译时刻加载的类是静态加载 new 创建对象时静态加载类,在编译时刻就需要加载所有可能使用到的类 如果编译时遇到静态类加载不成功可以采用动态加载: 运行时刻加载类是动态加载
    查看全部
  • Class 两样不是面向对象 1.静态的成员 2.普通数据对象 类是谁的对象 类是java.lang.Class there is a class named Class Foo foo1 = new Foo();//Foo的实例对象 Foo 这个类也是一个实例对象,Class类的实例对象,任何一个类都是Class的实例对象 有3种表达方式 Class c1 = Foo.class;//第一种表达方式,实际告诉我们任何一个类都有一个隐含的静态成员 Class c2 = foo1.getClass();//第二种表达方式,已经知道该类的对象通过getClass方法 官网表示c1 c2表示了Foo类的类类型 calss type c1 == c2 ? Class c3= null//第三种表达方式 c3 =Class.forName("com.immooc.reflect.Foo"); 我们完全可以通过类的类类型创建该类的对象实例,通过c1 or c2 or c3创建Foo的实例 Foo foo = (Foo)c1.newInstance(); c2 ==c3 true
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • java.lang.Constructor封装了构造函数的信息 getConstructors获取所有的public 的构造函数 getDeclaredConstructors得到所有的构造函数 要想得到类的信息,需要先得到类的类类型。
    查看全部
  • 在面向对象的世界里,万事万物皆对象。(java语言中,静态的成员、普通数据类型等) 类是java.lang.Class类的实例对象 三种表达方式: 1.实例.getClass(); 2.类名.class; 3.Class.forName("包名.类名")
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • java-反射专题 Class类的使用 任何一个类都是Class的实例对象,这个实例对象有三种表示方式 1、Class c1=Foo.class; 2、Class c2=foo1.getClass();//通过该类的对象getClass方法 3、Class c3=null; c3=Class.forName("com.imooc.reflect.Foo");//Class.forName();有异常
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • test
    查看全部
  • 所以是伪泛型了啊
    查看全部
  • 反射的操作都是编译之后运行时刻就行的 c1==c2,结果返回true,说明编译之后集合的泛型是去泛型化的。 集合的泛型是防止错误输入的,只在编译阶段有效,经过编译就无效了。 通过反射可以绕过
    查看全部
  • c1==c2 返回结果是true
    查看全部
  • 获取public方法 Method m = c.getMethod("print",new int.class,int.class); 反射操作 a1是m所在的对象 Object o =m.invoke(a1, 10,20); 如果没有返回值返回null,反之就返回返回类型
    查看全部
  • 方法的名称和方法的参数列表才能决定某个方法 方法反射操作 method.invoke(对象,参数列表)
    查看全部
  • 1.成员变量信息类型 Field-> Field[] fs = c.getFields() / c.getDeclaredFields() ; 2. 成员变量类类型 Class c2 = fs[x].getType();
    查看全部

举报

0/150
提交
取消
课程须知
童鞋们,学习本课程前需要熟悉Java面向对象的思想,并能掌握Java IO输入输出流、集合和泛型等知识。可参考慕课网Java入门的一、二、三季以及我的文件我做主——Java IO流课程。
老师告诉你能学到什么?
1、能够理解并应用反射机制。 2、能够了解反射机制在集合泛型中的应用。 3、有利于更好的学习框架等Java高级技术。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!