易截截图软件、单文件、免安装、纯绿色、仅160KB

深入理解java反射


一、什么是反射:
      反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。
      反射本身并不是一个新概念,尽管计算机科学赋予了反射概念新的含义。在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。
二、什么是Java中的类反射:
       Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性和方法。Java 的这一能力在实际应用中用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。
Reflection 是 Java 被视为动态(或准动态)语言的关键,允许程序于执行期 Reflection APIs 取得任何已知名称之 class 的內部信息,包括 package、type parameters、superclass、implemented interfaces、inner classes, outer class, fields、constructors、methods、modifiers,並可于执行期生成instances、变更 fields 內容或唤起 methods。
三、Java类反射中所必须的类:
      Java的类反射所需要的类并不多,它们分别是:Field、Constructor、Method、Class、Object,下面我将对这些类做一个简单的说明。
Field类:提供有关类或接口的属性的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)属性或实例属性,简单的理解可以把它看成一个封装反射类的属性的类。
Constructor类:提供关于类的单个构造方法的信息以及对它的访问权限。这个类和Field类不同,Field类封装了反射类的属性,而Constructor类则封装了反射类的构造方法。
Method类:提供关于类或接口上单独某个方法的信息


相关文档:

Java设计模式之:Iterator链表模式

先来了解一下链表模式的原理:
首先写一个JavaBean,内容是要添加的元素和该元素的节点。
public class NodeBean implements Serializable
{
   
    private Object data; //元素本身
    private NodeBean next; //下一个节点
   
  &n ......

什么是Java Plug in

什么是Java Plug-in      
  Java-plug-in,也就是我们通常说的Applet与JWS(Java Web Start),从技术上来讲,他们都隶属与RIA(Rich Internet Application)Java Plug-in的存在,使得在浏览器中运行Java程序成为可能,Java Plug-in在浏览器中作为插件存在,它扩展了浏览器的功能,也就是 ......

Java中画带有箭头的线段

最近由于要画活动图,所以需要画带有箭头的线段,于是结合有关资料,写出了这个方法。
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
public class test//读者可以更改类test的名字,以适合自己定义的.java文件,因为它只是用来测试的。
{
 public static void main (String args[]){
&nb ......

java环境变量配置

windows xp下配置JDK环境变量:
1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08;
2.安装完成后,右击“我的电脑”,点击“属性”;
      3.选择“高级”选项卡,点击“环境变量”;
  &nb ......

java 多态

三道JAVA基础题
题目(1)
class A {
   public int i = 10;
}
class B extends A{
   public int i = 20;
}
public class Test{
   public static void main(String&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号