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

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

Cedar
难度入门
时长 1小时20分
  • class.forName()代表动态加载类
    查看全部
  • 万事万物皆对象,任何一个类都是Class的实例对象,这个实例对象有三种表示方式。 Foo foo1 = new Foo(); 第一种:Class c1 = Foo.class(); 第二种:Class c2 = foo1.getClass(); 第三种:Class c3 = null;c3 = Class.forName("Foo类的全称"); c1、c2、c3均为Foo类的类类型; Foo foo = (Foo)c1.newInstance();//将类类型转换为foo类型 须有无参的构造方法
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • interface接口就是一个标准
    查看全部
  • 区分动态加载类和静态加载类
    查看全部
  • 万事万物皆对象,任何一个类都是Class的实例对象,这个实例对象有三种表示方式。 Foo foo1 = new Foo(); 第一种:Class c1 = Foo.class(); 第二种:Class c2 = foo1.getClass(); 第三种:Class c3 = null;c3 = Class.forName("Foo类的全称"); c1、c2、c3均为Foo类的类类型; Foo foo = (Foo)c1.newInstance();//须有无参的构造方法
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • 1、成员变量是对象,Field 类封装了成员变量的信息 方法: getFields() 获取所有 public 成员变量 getDeclaredFields() 获取所有自己声明的成员变量,不包括从父类继承来的。 2、构造函数是对象,Constructor 封装了构造函数的信息 方法 getConstructors() 获取所有构造方法
    查看全部
  • 获取方法信息: 基本数据类型,void关键字都存在类类型 class.getMethods()方法获取是该类的所有public方法,包括从父类继承的方法; class.getDeclareMethods()方法获取该类自行声明的所有方法,不论访问权限; method.getName()获取方法名 method.getReturnType()获取方法的返回值 method.getParameterTypes(),获取方法的参数类型的类类型数组class[] 三获取方法信息: 一、基本的数据类型,void关键字等都存在类类型 Class c = 基类.class (int,String,double,void等) 二、Class类的基本API操作的 1、c.getName()可以获取类的名称 2、c.getSimpleName();//不包含包名的类的名称 3、c.getMethods()获取类的【public方法】集合,【包括继承来的】 ***注意【所有方法都是Method类的对象】 4、c.getDeclaredMethods()获取的是所有该类【自己声明】的方法,【不问访问权限】 三、Method类提供了一些操作方法的方法 1、.getReturnType()得到该方法的返回值类型的类类型(class),如int.class String.class 2、.getName()得到方法的名称 3、.getParameterTypes()获得参数列表类型的类类型,如参数为(int,int)则得到 Class c1 = int.class; int的类类型 Class c2 = String.class; String类的类类型 String类字节码 Class c3 = double.class; double这个数据类类型的字节码表示方式 Class c4 = Double.class; Double这个类的类类型字节码表示方式 Class c5 = void.class; 表达了void这个类的类类型 getName为这个类的类类型的具体名称 c1.getName ---> int c2.getName ---> java.lang.String 类的全称 c2.getSimpleName ---> String 不包含包名的类的名称
    查看全部
  • 静态加载类是在编译时进行,动态加载类是在运行时进行;静态加载在编译时有错误会报错,动态加载在编译时有错误不会报错,在运行时才会报错。 Class.forName("类的全称") 不仅表示了类的类类型,还代表了动态加载类 类分为 2 种: 1、静态加载类 编译时,加载的类是静态加载类。 Foo foo = new Foo(); 创建对象是静态加载类,编译时就要加载所有要用到的类,如果其中 1 个类有问题,就无法通过编译。解决该问题,可以使用动态加载类。 2、动态加载类 运行时,加载的类是动态加载类 Class.forName("com.reflect.Foo"); 编译时不检查用到的类是否存在,运行时再检查。
    查看全部
  • //HelloWorld类也是对象,是java.lang.Class类的对象 //每一个类都有一个隐含的静态成员变量class Class c1 = HelloWorld.class //已知道该类的对象,通过getClass()方法获得类类型 HelloWorld hello = new HelloWorld(); Class c2 = hello.getClass(); //通过Class类的forName()方法 Class c3 = Class.forName("包名.HelloWorld"); 结果:c1==c2==c3 (c1,c2,c3称为类类型) //通过类类型的newInstance()方法,可以获得类的对象 HelloWorld hello2 = (HelloWorld)c1.newInstance();
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

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

    2018-02-20

  • 集合泛型只在编译前有效,防止错误输入,编译之后无效
    查看全部
  • 编译之后集合是去泛型化的,即使说编译之后集合是没有泛型的
    查看全部
  • Method 的对象是 某一个方法的对象
    查看全部
  • Method 的对象是 某一个方法的对象
    查看全部
  • java.lang.reflect.Field封装关于成员变量的操作 java.lang.reflect.Method封装关于方法的操作 java.lang.Constructor封装构造函数信息
    查看全部

举报

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

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