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

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

Cedar
难度入门
时长 1小时20分
  • 我们写的class是java.lang.class类的实例对象,这个实例对象的官方叫法也可以叫做我们写的class的类类型。这个类类型有三种表示方式,1.类.class 2.类的实例对象.getClass. 3.class.forName();不管是哪种表达方式,一个类都只能是class类的同样一个类类型。 我们可以用这个类类型来new一个该类的实例对象,同样也可以调用这个里面的方法,前提是这个类里面要有一个无参的构造方法。
    查看全部
    1 采集 收起 来源:Class类的使用

    2017-08-05

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

    2017-08-05

  • java中的静态成员和普通数据类型不属于面向对象的,静态成员变量是属于类的
    查看全部
    0 采集 收起 来源:Class类的使用

    2017-08-05

  • 反射的操作都是编译之后的操作
    查看全部
  • Class c1 = int.class; // int基本类型的类类型 Class c2 = String.class; // String类的类类型 c1.getName(); // 返回int c2.getName(); // 返回java.lang.String c2.getSimpleName(); // 返回String Methods[] ms = c1.getMethods(); // 获取该类的所有公有方法,包括继承的方法 Methods[] ms = c1.getDeclaredMethods(); / 获取所有自己声明的方法,包括私有方法 for(int i=0;i<ms.length;i++){ Class returnType = ms[i].getReturnType; // 获取这个方法的返回值的类类型 returnType.getName(); // 该方法的返回值的类类型的名称 ms[i].getName(); // 该方法的名称 Class[] paramTypes = ms[i].getParameterType(); // 获取该方法的参数的类型的类类型的数组 for(Class class1: paramType){ class1.getName(); // 获取该参数的类型的名称 } }
    查看全部
  • 编译时加载的类是静态加载类 静态加载类,在编译时刻加载所有可能用到的类 运行时加载的类是动态加载类 编译时刻不会报错 Class c = Class.forName(arg[0]); OfficeAble oa = (OfficeAble)c.newInstance(); // 使用接口,实现实例化不同的类,该类的接口为OfficeAble
    查看全部
  • 万事万物皆对象 类也是对象,是Class类的实例对象 这个对象我们成为该类的类类型 Class c1 = Foo.class; Fool foo1 = new Foo(); Class c2 = foo1.getClass(); Class c3 = null; c3 = Class.forName("com.Foo"); 创建Foo类的对象 Foo foo2 = (Foo)c1.newInstance();
    查看全部
    0 采集 收起 来源:Class类的使用

    2018-03-22

  • 1.java中集合的泛型,是防止错误输入,只在编译阶段有效,绕过编译就无效了,
    查看全部
  • 1.方法的名称和方法的参数列表才能唯一决定某个方法 2.要获取一个放法就是获取类的信息,获取类的信息首先就是要获取类的类类型 3.getMethod(方法名,方法参数数组)获取的是public的方法,getDeclaredMethod()获取的是自己声明的方法; 4.方法的反射操作是用方法的对象来进行方法的调用和类对象调用方法的效果是类似的;Object o=m.invoke(a1,new Object[]{10,20});方法如果没有返回值,则o为null,否则返回具体的返回值
    查看全部
  • 1.成员变量也是对象,Java.lang.reflect.Field Field类封装了关于成员变量的操作 2.Field[]gs=c.getFields();获取的是所有public的成员变量的信息,getDeclaredFields()获取的是该类自己声明的成员变量的信息 3.Class fieldType=field.getType();得到成员变量的类型的类类型;String fieldname=field.getName();得到成员变量的名称 4.构造函数也是对象,java.lang.Constructor中封装了构造函数的信息,getConstructor()获取所有的public的构造函数,getDeclaredConstructor()得到所有的构造函数(必须是自己声明的) 5.Class[]paramTypes=constructor.getParameterTypes();获取构造函数的参数列表--->得到的是参数列表类型的类类型;
    查看全部
  • 1.void等关键字都存在类类型,比如 Class c=int.class;Class c1=String.class; 2.Method类,方法对象,一个成员方法就是一个Method对象,getMethods()方法获取的就是所有的public的方法,包括父类继承而来的,getDeclaredMethods()获取的是所有该类自己声明的方法,不会访问继承而来的方法; 3.Method[]ms=c.getMethods();获取c类中所有的方法,Class returnType=ms[i].getReturnType();获取方法的返回值类型的类类型;ms[i].getName();获取方法的名称 4.Class[]paramTypes=ms[i].getParameterTypes();获取参数类型--->得到的是参数列表的类型的类类型;
    查看全部
  • 1.编译时刻加载类是静态加载类、运行时刻加载类是动态加载类 2.new 创建对象是静态加载类,在编译时刻就需要加载所有的可能使用到的类。 3.Class c=Class.foName(args[0])为动态加载类,在运行时刻加载 4.通过类类型,创建该对象 OfficeAble oa=c.newInstance();//OfficeAble是一个接口
    查看全部
  • 创建类类型的三种方式: 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

  • 反射操作
    查看全部
  • class类
    查看全部

举报

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

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