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

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

难度入门
时长 1小时20分
学习人数
综合评分9.67
759人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • List无论是否加入<范式>,其类类型都是一样。

    如图中,代码结果为true

    查看全部
  • 方法的反射操作

    a1.print(10,20);方法的反射操作时用m对象来进行方法调用 和a1.print调用的效果一样

    方法如果没有返回值返回null,有返回值返回具体的返回值

    Object o = m.invoke(a1,new Object[]{10,20});

    //由于是可变参数,同样也可以有几个参数传几个参数

    Object o = m.invoke(a1,10,20);

    注意:a1是New出来的类对象。

    查看全部
  • 要获取print(int,int)方法

    1. 要获取一个方法就是获取类的信息,获取类的信息首先要获取类的类类型。

      Class c = obj.getClass();

    2. 获取方法 名称和参数列表来决定

      getMethod获取的是public的方法

      getDelcaredMethod获取自己声明的方法

      Method m = c.getMethod("print",new Class[]{int.class,int.class});//由于该方法的第二个参数为可变参数,也可写成下面这种

      //Method m = c.getMethod("print",int.class,int.class);

    查看全部
  • System.out.print(" ");    //没换行

    System.out.println(" ");    //后面自带换行

    查看全部
  • 构造函数也是对象。

    java.lang.Constructor中封装了构造函数的信息。

    getConstructors获取所有的public的构造函数。

    getDeclaredConstructors得到所有的构造函数。

    Constructor[] cs = c.getDeclaredConstructors();

    获取构造函数的参数列表,得到的是参数列表的类类型(和前面获取方法的参数类类型一样)

    Class[] paramTypes = construcroe.getParameterTypes();//再调用.getName()才是类名

    查看全部
  • 记住,要获取类的信息,要先获取类类型

    查看全部
  • 记住,要获取类的信息,要先获取类类型

    查看全部
  • 成员变量也是对象

    java.lang.reflect.Field

    Field类封装了关于成员变量的操作。

    getField()方法获取的是所有的public的成员变量的信息。

    getDeclaredFields()获取的是该类自己声明的成员变量的信息。

    Field[] fs = c.getDelcaredFields();

    获取成员变量的类型的类类型

    Class fieldType = field.getType();    //如String.class

    String typeName = fieldType.getName();    //如String

    获取成员变量的名称

    String fieldName = field.getName();

    查看全部
  • 万物皆对象,方法也是对象。

    Method类,方法对象

    一个成员方法就是一个Method对象。

    getMethods()方法获取的是所有的public的函数,包括父类继承而来的。

    getDeclaredMethods()获取的是所有该类自己声明的方法,不问访问权限。

    注意:上面两个函数返回的都是Method数组。

    Method[] ms = c.getMethods();

    获取方法的返回值类型的 类类型

    Class returnType = ms[0].getRturnType();    //然后调用returnType .getName();才是返回值类型

    获取方法的名称

    ms[0].getName();

    获取参数类型,得到的是参数李彪的类型的类类型

    Class[] paramTypes = ms[i].getParameterTypes();//然后调用paramTypes[i] .getName();才是参数类型

    查看全部
  • 代码通过传递一个对象,获取该类的类名。

    通过先getClass( )获取类类型,然后getName( )打印类名

    查看全部
  • 获取基本数据类型的类类型

    Class c = String.class    

    通过c.getName()     //返回java.lang.String

    或 getSimpleName()    //返回String

    注意getSimpleName()不包含包名的类的名称。

    查看全部
  • 基本的数据类型

    void关键字 都存在类类型。

    查看全部
  • 使用该方法,main的主文件只需编译一次。

    后面只需添加新的类对象文件实现接口,然后在运行时添加参数即可。

    查看全部
  • 其中一中类对象Excel的代码

    查看全部
  • OfficeAble接口代码

    查看全部

举报

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

微信扫码,参与3人拼团

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

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