zoukankan      html  css  js  c++  java
  • Java反射机制

    Java反射指程序可以在运行时加载、探知、使用编译期间完全未知的类。往常我们写程序时,如果引用某类,那此类必须是已知和已编译的,而反射却允许程序可以使用在运行时才得知类名称的类:获得其完整构造、生成对象、对其属性赋值、调用其方法。

    Java反射的实现依赖于Class,它继承自Object,不允许被继承,没有公共构造函数,所以不能通过编程生成实例,只能有JVM产生其对象。Class类的实例表示正在运行的java应用程序中的类和接口(包括基本数据类型)。生成一个类的对象时,JVM会检查该类的Class对象是否已经载入,若该类的Class对象已在内存,就可以任意创建该类的实例了。Class对象保存在与每个类同名的.class文件中。看出类实例化的过程是:加载类的Class对象,实例化类。可以这样理解,Class对象相当于类(型)的模板,放在内存中用于生成实例。

    方法如下:

    1。XX.getClass,如String str="abc"; Class c1=str.getClass();//每个类都有getClass()方法,因为其继承自Object

    2。Class.forName(),此方法最为常用,如Class c1=Class.forName("java.awt.Button");

    3。基本数据类型.TYPE,如Class c1=Boolean.Type; Class c2=Byte.Type;

    在拥有了某对象的Class之后就可以使用API中java.lang.reflect包中的类和接口了。主要类成员有:Field,Method等。

    具体使用实例(最好参照API了解Class中的各方法及属性):

    1. 得到某个对象的属性

     

    2. 得到某个类的静态属性

     

    3. 执行某对象的方法

    4.执行某类静态方法

    5.新建实例


    补:类名className应为全路径(xxx.xxx.Test)

  • 相关阅读:
    Redis集群~StackExchange.redis连接Twemproxy代理服务器
    开源的Android视频播放器
    Servlet 实现文件的上传与下载
    HDU1878 欧拉回路
    C#根据域名查询IP(CMD命令参数输入或者启动程序后再输入查询)
    Windows API获取系统配置文件的配置参数
    Lucene核心--构建Lucene搜索(下篇,理论篇)
    Lucene核心--构建Lucene搜索(上篇,理论篇)
    hdu1397(素数组和成偶数的个数 用 标记法)
    hdu1248
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982140.html
Copyright © 2011-2022 走看看