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

Java反射机制

反射机制:所谓的反射机制就是java
语言在运行时拥
有一项自观的能力。通过这种能力可以彻底的了解自身的情况为下一步的动作做准备。下面具体介绍一下java
的反射机制。这里你将颠覆原来对java的理解。
Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method;其中class代表的时类对
象,Constructor-类的构造器对象,Field-类的属性对象,Method-类的方法对象。通过这四个对象我们可以粗略的看到一个类的各个组
成部分。
Class:程序运行时,java运行时系统会对所有的对象进行运行时类型的处理。这项信息记录了每个对象所属的类,虚拟机通常使用运行时类型信息
选择正
确的方法来执行(摘自:白皮书)。但是这些信息我们怎么得到啊,就要借助于class类对象了啊。在Object类中定义了getClass()方法。我
们可以通过这个方法获得指定对象的类对象。然后我们通过分析这个对象就可以得到我们要的信息了。
比如:ArrayList arrayList;
Class clazz = arrayList.getClass();
然后我来处理这个对象clazz。
当然了Class类具有很多的方法,这里重点将和Constructor,Field,Method类有关系的方法。
Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java
程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。Java
的这一能力在实际应用中也许用得不是很多,但是个人认为要想对java有个更加深入的了解还是应该掌握的。
1.检测类:
reflection的工作机制
考虑下面这个简单的例子,让我们看看 reflection 是如何工作的。
import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[]) {
try {
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
} catch (Throwable e) {
System.err.println(e);
}
}
}
按如下语句执行:
java DumpMethods java.util.ArrayList
这个程序使用 Class.forName 载入指定的类,然后调用 getDeclaredMethods
来获取这个类中定义了的方法列表。java.lang.reflect.Methods 是用来描述某个类中单个方法的一个类。
Java类反射中的主要方法
对于以下三类组件中的任何一类来说 -- 构造函数、字段和方法 -- java.lang.Class
提供四种独立的反射调用,以不同的方式来获得信息。调用都遵循一种


相关文档:

java中的代码块理解

代码块:就是用{}括起来到部分。根据应用的不同分为4类:普通代码块、构造块、静态代码块、同步代码块。
1.普通代码块:定义在方法中的代码块。
如:
public class Ex22 {

public static void main(String[] args){
// 普通代码块
{
int i = 3;
System ......

Java图片处理方法——放大、缩小、切割

import java.io.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.Graphics;
import java.awt.color.ColorSpace;
import javax.imageio.ImageIO;
public class ChangeImageSize
{
    /** *//**
     * 缩放图像
     * @param srcImage ......

JAVA java.io.InvalidClassException急解


JAVA--java.io.InvalidClassException急解
字号:T|T
JAVA--java.io.InvalidClassException急解
java.io.InvalidClassException: message.RegisterMessage; local class incompatible: stream classdesc serialVersionUID = 5540404719929042644, local class serialVersionUID = -8915824483106432775
回答:
最佳 ......

java数据操作——Hibernate与JDBC

  这是我第一次写技术博文,喜欢大家提出宝贵意见。这篇文章主要想讲三个问题。
   第一:Hibernate和JDBC的区别。
   作为java程序员,我觉得弄清楚Hibernate与JDBC的区别,不仅对打好扎实的基本功比较重要,就是以后的学习,开发也具有相当的借鉴意义。可惜的是现在有好些程序员不屑于学 ......

每个项目中,你不得不知的11个Java第三方类库

Java第三方library ecosystem是一个很广阔的范畴。不久前有人撰文:每个项目中,你必须知道的11个Java第三方类库。
单元测试
1.DBUnit
DBunit是一个基于junit扩展的数据库测试框架。它提供了大量的类对与数据库相关的操作进行了抽象和封装。
2.MOckito
Mockito是一个针对Java的mocking框架。你可以使用简洁的API编写出 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号