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

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

Cedar
难度入门
时长 1小时20分
  • 笔记总结1
    查看全部
  • xx的类类型  xx类的类类型

    查看全部
  • 动态加载类,在运行时刻加载

    Class c = Class.forName("类的全称");

    //通过类类型,创建该类对象

    OfficeAble oa = (OfficeAble)c.newInstance():


    查看全部
  • new 创建对象,是静态加载类,在编译时需要加载所有可能使用到的类


    查看全部
  • class Foo

    Foo foo1 = new Foo();

    Class c1 = Foo.class;

    Class c2 = foo1.getClass();

    Class c3 = Class.forName("com.imooc.reflect.Foo"); //完整路径


    通过类的类类型创建该类的对象实例--》通过 c1 or c2 or c3创建Foo的实例

    Foo foo = (Foo) c1.newInstance();//需要有无参数的构造方法


    查看全部
    1 采集 收起 来源:Class类的使用

    2018-09-25

  • Demo demo = new Demo();
    Class c1 = Demo.class;
    Class c2 = demo.getClass();
    Class c3 = Class.forName("Demo在src下的绝对路径");

    c1 = c2 = c3 (即三者都是指向同一个引用对象)

    实例化则可以通过Demo demo = (Demo)c1(or c2 or c3).newInstance()获取demo对象。但需要注意:newInstance()会调用Demo类的无参构造函数,如果没有无参的构造函数会报错。

    查看全部
    0 采集 收起 来源:Class类的使用

    2018-09-24

  • 这个时候word这个类已经有了,所以可以加载到,但是Excel没有存在,所以加载不到,编译不通过。

    但是这个时候程序还是无法执行,因为静态加载机制中,只要有1个加载不到导致其他的都不能编译通过,但是我们想要的就是需要用到哪一个就去加载哪一个

    查看全部
  • 功能性的类使用动态加载而不是静态加载,类类型是在运行时加载类,new的方式是在编译的时候加载全部的类,属于静态加载类

    查看全部
  • 动态加载类:

    1、使用反射的方式,运行时加载所需类

    2、使用类类型实例化具体对象,并返回统一接口的实例对象

    3、主只需要编译一次

    查看全部
  • 通过Class,Method来认识泛型的本质(javafanshe);

    ArryList<String> list= new ArrayList<String>();  往集合添加值时,只能添加String类型。

    反射的操作都是编译之后的操作

    Java中集合的泛型,是防止错误输入的,只在编译阶段有效,绕过编译就无效了。

    查看全部
  • 用java反射获取print()方法:

    1. 首先需要获取类的信息--A a1=new A();    Class c=a1.getClass();

    2. 获取方法-(由名称和参数列表来决定)-----Method m=c.getMethod("print",int.class,int.class);  其中print 是方法名称

    3. 方法的反射操作--Object 0 = m.invoke(a1,10,20);

    查看全部
  • Object 0 = m.invoke(a1,10,20);其中a1是A这个类的实例对象。

    查看全部
  • 参数列表就是参数已逗号隔开所形成的列表

    1)如何获取某个方法

    方法的名称和方法的参数列表才能唯一决定某个方法

    2)方法的反射操作

    method.invoke(对象,参数列表)

    反射:方法调用的参数列表

    查看全部
  • 关于反射的相关信息--第二节

    成员变量也是对象

    java.lang.reflect.Field    Field类封装了关于成员变量的操作

    Field  c.getDeclaredFields(); 获取的是该类自己声明的成员变量的信息

    (c为类的信息  obj.getClass())

    Class field.getType();   得到成员变量的类型的类类型 例如  int.class

    String field.getName(); 得到成员变量的名称


    构造函数也是对象    java.lang.Constructor封装了构造函数的信息

    Constructor[]  c.getDeclaredConstructor();获取所有本类中自身创建所有的构造函数

    Class[] constructor.getParameterTypes();得到的是参数列表的类类型

    查看全部
  • java反射相关知识点:

    要获取类的信息 首先要获取类的类型

    Class c= obj.getClass();      c.getName();获取类的名称


    Method类,方法对象  一个成员方法,就是一个Method对象

    Method[] c.getDeclaredMethods();   获取本类的所有声明的方法

    Class   c.getDeclaredMethods().getReturnType();得到方法的返回值类型

    Class  c.getDeclaredMethods()[i].getParameterTypes();得到参数列表的类型的类类型

    查看全部

举报

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

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