为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
反射——Java高级开发必须懂的_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

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

Cedar
难度入门
时长 1小时20分
  • class Foo{} Foo foo1 = new Foo(); 任何一个类都是Class的实例对象,这个实例对象有三种表示方式: 1.Class c1 = Foo.class; //已知类名,这种表达方式告诉我们任何一个类都有一个隐含的静态成员变量class 2.Class c2 = foo1.getClass(); //已知该类的对象 3.Class c3 = null; try{ c3 = Class.forName("com.imooc.reflect.Foo"); }catch(ClassNotFoundException e){ e.printStackTrace(); } c1、c2表示了Foo类的的类类型(class type) 类是对象,是Class类的实例对象,这个对象我们成为该类的类类型。 可以通过类的类类型创建该类的对象实例,即通过c1、c2、c3创建Foo的实例对象 try{ Foo foo = (Foo)c1.newInstance();//需要有无参数的构造方法 }catch(InstantiationException e){ e.printStackTrace(); }
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • 通过反射了解泛型的本质
    查看全部
  • 利用反射获取和操作方法
    查看全部
  • 动态加载
    查看全部
  • 静态方法、静态数据不是对象 基本数据类型不是对象 基本数据类型有包装类 类是对象
    查看全部
    0 采集 收起 来源:Class类的使用

    2016-06-14

  • java反射机制
    查看全部
    0 采集 收起 来源:Class类的使用

    2016-06-14

  • //方法也是对象,一个成员方法就是一个Method对象 //getMethods()方法,获取的是所有的public函数,报货父类继承而来的 Method[] ms = c.getMethods(); //getDeclaredMethods()获取的是所有该类自己声明的方法,不问访问权限 Method[] ms = c.getDeclaredMethods(); //得到方法的返回值类型的类类型 Method.getReturnType(); //得到方法的名称 Method.getName(); //获取参数类型-->得到的是参数列表的类型的类类型 Class[] paramType = Method.getParameterTypes();
    查看全部
  • 1.FOO.class 2.foo1.getClass(); 3.
    查看全部
    0 采集 收起 来源:Class类的使用

    2016-06-12

  • 类是java.lang.class的对象
    查看全部
    0 采集 收起 来源:Class类的使用

    2016-06-10

  • getname;<br> getmethod;<br> getreturntype;<br> getname;<br> getparametertypes;
    查看全部
  • java的泛型只在编译时约束输入的类型,如果绕过编译,用反射去操作就可以忽略泛型!
    查看全部
  • 万事万物皆对象,类也是实例对象 类是java.Lang.Class的实例对象,官方解释为类的类类型,区分类自己本身的实例对象!
    查看全部
    0 采集 收起 来源:Class类的使用

    2016-06-07

  • Java反射机制——通过反射了解集合泛型的本质 1:反射的操作都是编译之后的操作;就是运行阶段 2:java中集合的泛型是防止错误输入的;只在编译阶段有效,只要绕过编译就无效啦 我们可以通过方法的反射来操作,绕过编译 eg: ArrayList list1=new ArrayList(); ArrayList<String> list2=new ArrayList<String>(); Class c1=list1.getClass(); Class c2=list2.getClass(); System.out.print(c1==c2);//true Method m=c2.getMethod("add",Object.class); m.invoke(list2,20);//向list2集合中添加一个int 型的值;绕过编译 当然是不能直接foreach list2集合的,会报类型转换错误
    查看全部
  • 泛型之中类型的定义是为了防止插入错误的类型,其实在编译完成的字节码之中已经去泛型化 ,如 ArrayList al = new ArrayList() ; ArrayList<STring> al = new ArrayList<String>() 在编译之后的class是一样的
    查看全部
  • 想要得到一个类的类信息,必须先获得他的类类型 class c1 = obj.getClass();
    查看全部

举报

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

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