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

Java反射机制 详解 基本功

一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,运行改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,perl,phthon,ruby是动态语言,C++,JAVA,C#不是动态语言。
 
在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的,这种动态获取类的信息以及动态调用对象的方法的功能来自于Java语言的反射(Reflection)机制。
Java反射机制主要提供了以下功能:
在运行时判断任意一个对象所属的类。
在运行时构造任意一个类的对象.
在运行时判断任意一个类所具有的成员变量和方法。
在运行时调用任意一个对象的方法。
reflection是Java被视为动态(或准动态)语言的一个关键性质,这个机制运行程序在运行时透过reflection apis取得任意一个已知名称的class的
内部信息,包括其modifiers(诸如public,static等等),superclass(例如Object),实现之Interface(例如serializable),也包括fields和methods的所有信息,并可于运行时改变fields内容或调用methods。
 
在JDK中,主要由以下类来实现Java反射机制,这些类都位于Java.lang.reflect包中
Class类:代表一个类
Field类: 代表类的成员变量(成员变量也称为类的属性)。
Method类: 代表类的方法。
Constructor类: 代表类都构造方法。
Array类: 提供了动态创建数组,以及访问数组的元素的静态方法
例程DumpMethods类演示了ReflectionAPI的基本作用,它读取命令行参数指定的类名,然后打印这个类所具有的方法信息。
public static void main(String args[]){
    Class<?> classType=Class.forName(args[0]);
    Method methods[]=classType.getDeclaredMethods();
    for(int i=0; i<method.length;i++)
    {
         System.out.println(methods[i].toString());
         }
}
 
例程ReflectTester类进一步演示了ReflectionAPI的基本使用方法。  ReflectTester类有一个copy(Object object)方法,这个方法能够创建一个和参数object同样类型的对象,然后把object对象中的所有属性拷贝到新建的对象中,并将它返回
 
这个例子只能复制简单的JavaBean,假定JavaBea


相关文档:

Java程序员到架构师的推荐阅读书籍

声明:本文并非本人所写,是网上看到的,但是该文没有标明出处,所以本人也不知道
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。
一、 ......

java 的自带几种皮肤的类名

javax.swing.plaf.metal.MetalLookAndFeel
com.sun.java.swing.plaf.windows.WindowsLookAndFeel
com.sun.java.swing.plaf.motif.MotifLookAndFeel
com.sun.java.swing.plaf.mac.MacLookAndFeel
com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel //java6新皮肤,玻璃透明
我的资源中有相关 java swing 方面的教程,j ......

java 异常处理总结

一、Java异常的基础知识
    异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常 ......

java动态代理

代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。
在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
代理模式一般涉及到的角色有
抽象角色:声明真实对象和代理对象的公共接口(求局长办事的人)
代理角色:代理对象角色内部含有对真实 ......

java中可以实现一个线程的方法

有两种实现方法,分别是继承Thread类与实现Runnable接口
用synchronized关键字修饰同步方法
反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号