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

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

Cedar
难度入门
时长 1小时20分
  • 获得成员变量的信息 成员变量也是对象 java.lang.reflect.Field Field类封装了关于成员变量的操作<br> getFields();方法获取的是所有public的成员变量<br> getDeclaredFields();方法获取的是所有自己声明的成员变量 //获取对象构造函数的信息 构造函数也是对象 java.lang.Constructor中封装了构造函数的信息 getConstructors();方法获取的是所有public的构造函数信息<br> getDeclaredConstructors();方法获取的是所有自己声明的构造函数信息(构造方法必须是自己声明的) 参数为“Holle”时 获取的是String类构造函数
    查看全部
  • 打印类的全部方法
    查看全部
  • Class c1 = int.class; Class c2 = String.class; (可以关键字.class 类名.class) 基本数据类型 void等关键字都存在类类型 System.out.println(c2.getSimpleName);// 不含包名的类类型名称 //要获取类信息 首先获取类类型 public static void printClassMessage(Object obj){ Class c = obj.getClass();//传递的是哪个子类的对象 c就是该子类的类类型 } //接下来获取类的名称 用 getName();来获取类的名称 //获取方法 方法是Method的对象 一个成员方法就是一个Method对象 getMethod()方法获取的是所有public的函数 包括父类继承而来的 getDeclaredMethod()方法获取的是该类自己声明的方法 不问访问权限
    查看全部
  • 区分动态加载和静态加载<br> Class.forName("类的全称")<br> 不仅表示了类的类类型,还表示了动态加载类 区分编译、运行<br> 编译时刻加载类是静态加载类、运行时刻加载类是动态加载类 //new 对象是静态加载类 在编译时刻就需要加载所有的可能用到的类 希望动态加载 用哪个加载哪个 Class c = Class.forName(arg[0]);//动态加载类 在运行时刻加载 //通过类类型创建该类的对象
    查看全部
  • 类是对象 类是java.lang.Class类的实例对象<br> 任何一个类都是Class的实例对象 这个实例对象有三种表示方法<br> Class c1=Foo.class //类名点class 任何一个类都有一个隐含的静态成员变量<br> Class c2 =foo1.getClass();//已经知道该类的对象通过getClass方法 foo1表示Foo的实例对象 (类也是对象,是Class类的实例对象,这个对象我们称为该类的类类型) c1和c2都代表了Foo类的类类型,一个类只可能是Class类的一个实例对象 //第三种表达方式 Class c3=null; c3 = Class.forName("com.imooc.reflect.Foo");//类的全称 //我们完全可以通过类的类类型创建该类的对象实例 通过c1 c2 c3创建Foo的实例对象 Foo foo =(Foo)c1.newInstance();//需要有无参数的构造方法
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • 编译时加载类是静态加载类,运行时加载类是动态加载类
    查看全部
  • class.newInstance()前提条件是需要有无参数的构造方法
    查看全部
    0 采集 收起 来源:Class类的使用

    2016-07-27

  • Class.forName("Foo") Foo.class Foo f1=new Foo(),f1.class 都是一样
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • 1:Class class1=Foo.class; ------->实际在告诉我们,任何一个类都有一个隐含的静态成员变量 2: Class class2=foo1.getClass()---->已知该类的对象,通过该类的对象通过getClass方法 class1和class2表示Foo类的类 类型(class type) Foo这个类本身就是一个对象,Foo类的对象: 3:Class class3=null; class3=Class.forName(); class1==class2==class3
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • new 创建出来类的实例, 属于静态加载类,编译时需要全部加载,如果一个类有错误,则无法运行。<br> 编译时刻加载类是静态加载类、运行时刻加载类是动态加载。 <br> Class.forName()是动态加载类,运行时才加载,编译时不加载。<br> 使用Eclipse和MyEclipse时,感觉不明显,因为编译和运行是一起进行的。 new 创建对象 是静态加载类,在编译时刻就需要加载所有的可能使用的类; 通过动态加载类可以解决该问题 Class c = Class.forName(“class全名,如:Project.dao.entity.ClassName”); 通过类类型,创建该类对象。 OfficeAble oa=(OfficeAble)c.newInstance(); oa.start(); 定义个接口Interface OfficeAble,让子类实现它。 在线升级用的就是动态加载类。 功能性的类,要使用动态加载,而不能使用静态加载。
    查看全部
  • java反射
    查看全部
    0 采集 收起 来源:Class类的使用

    2016-07-24

  • 反射泛型2
    查看全部
  • 反射解释泛型1
    查看全部
  • 反射方法5
    查看全部
  • 反射方法4
    查看全部

举报

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

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