黑马程序员_java 反射的基本理解

原创 2015年07月10日 22:10:14

-----------android培训java培训、java学习型技术博客、期待与您交流!------------

反射基础知识

一、概述

       反射,简单的说就是把Java类中的各个成分反射成相应的Java类,它的反射机制主要是在运行的时候判断任意一个对象所属的类,同时构造成任意一个类的对象,并且在判断类的时候注意其具有的成员变量和成员方法,在运行的时候并调用其方法。我们也可以这样理解,对于任意一个类,都能够知道这个类中的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。

注意:类是程序的一部分,每一个类都有一个Class对象。

二、Class类

       所有的类文件都有共同属性,我们可以向上抽取,把这些共性内容封装成一个类,这个类就叫Class(也就是所谓的描述字节码文件的对象)。Class类中就包含属性有field(字段)、method(方法)、construction(构造函数)。而field中有修饰符、类型、变量名等复杂的描述内容,因此也可以将字段封装称为一个对象。用来获取类中field的内容,这个对象的描述叫Field。同理方法和构造函数也被封装成对象Method、Constructor。要想对一个类进行内容的获取,必须要先获取该字节码文件的对象。该对象是Class类型。其运行过程是当我们想生成这个类的对象的时候,JVM首先会检查这个类的Class对象是否已经加载,如果还没有加载,JVM就会按照类名查找,并将其.class文件载入,比如:Person这个类,它的实例对象是张三。Java程序中的各个Java类属于同一类事物,描述这类事物的Java类名就是Class。

三、Class类中的方法

1、static Class forName(String className)

        返回与给定字符串名的类或接口的相关联的Class对象。

2、Class getClass()

        返回的是Object运行时的类,即返回Class对象即字节码对象。

3、Field getField(String name)

        返回一个Field对象,它表示此Class对象所代表的类或接口的指定公共成员字段。

4、Field[] getFields()

        返回包含某些Field对象的数组,表示所代表类中的成员字段。

5、Constructor getConstructor()

        返回Constructor对象,它反映此Class对象所表示的类的指定公共构造方法。

6、Method getMethod(String name,Class parameterTypes)

        返回一个Method对象,它表示的是此Class对象所代表的类的指定公共成员方法。

7、Method[] getMehtods()

        返回一个包含某些Method对象的数组,是所代表的的类中的公共成员方法。

8、String getName()

        以String形式返回此Class对象所表示的实体名称。

9、String getSuperclass()

        返回此Class所表示的类的超类的名称。

10、boolean isArray()

        判定此Class对象是否表示一个数组。

11、boolean isPrimitive()

        判断指定的Class对象是否是一个基本类型。

12、T newInstance()

        创建此Class对象所表示的类的一个新实例。

四、特点

       我们知道有九个预定义的Class对象,分别是八种基本类型(byteshortintlongfloatdoublecharboolean)的字节码对象和一种返回值为void类型的void.class。都可以用与之对应的包装类中的TYPE常量表示。由于今天很晚了,我今天的任务还没完成,我先去完成我今天的任务。具体的例子我在下一讲会一一进行举例。

-----------android培训java培训、java学习型技术博客、期待与您交流!------------

相关文章推荐

黑马程序员---java基础加强 反射的深入理解

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

黑马程序员——个人对JAVA反射的一些理解

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------   因为反射部分是转载的,没通过老师的审核,现在自己写下对反射的理解。纯手打哦! 先说概念...

黑马程序员—反射的概念与基本用法

android培训、java培训、期待与您交流!什么是反射?反射就是把Java类中的各种成分映射成相应的java类。 一个类中的每个成员都可以用相应的反射API类的一个实例对象来表示,通过调用Cla...

黑马程序员--Java中反射的基础

------- android培训、java培训、期待与您交流! ---------- 1,什么是反射 java 程序在运行期间可以动态加载、解析和使用在编译期间并不确定的类型,我...
  • macover
  • macover
  • 2015年04月10日 00:15
  • 103

黑马程序员-JAVA-反射的一些特殊例子

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- 反射的一些特殊例子 接口,注解,内部类,匿名内部类的反射...
  • sisel
  • sisel
  • 2015年04月14日 09:46
  • 233

黑马程序员 java 反射的深入学习

----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 反射:反射就是把Java类中的...

黑马程序员___java反射的总结

---------------------- android培训、java培训、期待与您交流! ---------------------- 一、       反射的基础_Class类 1...

黑马程序员——java基础——反射的定义及用法

反射的定义及用法

黑马程序员——【Java反射学习】反射的应用:测试泛型的本质

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Class类的使用方法的反射成员变量的反射构造函数的反射反射的应用:测试泛型的本质...

黑马程序员--反射的理解应用

----------------- android培训、java培训、期待与您交流!-----------------
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员_java 反射的基本理解
举报原因:
原因补充:

(最多只允许输入30个字)