java反射机制学习
反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力。通过这种能力可以彻底的了解自身的情况为下一步的动作做准备。下面具体介绍一下java
的反射机制。这里你将颠覆原来对java的理解。
Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method;其中class代表的时类对
象,Constructor-类的构造器对象,Field-类的属性对象,Method-类的方法对象。通过这四个对象我们可以粗略的看到一个类的各个组
成部分。
Class:程序运行时,java运行时系统会对所有的对象进行运行时类型的处理。这项信息记录了每个对象所属的类,虚拟机通常使用运行时类型信息选择正
确的方法来执行(摘自:白皮书)。但是这些信息我们怎么得到啊,就要借助于class类对象了啊。在Object类中定义了getClass()方法。我
们可以通过这个方法获得指定对象的类对象。然后我们通过分析这个对象就可以得到我们要的信息了。
Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java
程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。Java
的这一能力在实际应用中也许用得不是很多,但是个人认为要想对java有个更加深入的了解还是应该掌握的。
reflection的工作机制:
package TestReflect;
import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[]) {
try {
Class c = Class.forName("java.util.ArrayList");
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类反射中的主要方法:
相关文档:
下载地址 可以在eclpse中跑的
生产excel应用:
package com.lihp.exl;
/**
目的:提供由数据对象集合类(Vector)生成Excel工作表的功能
作者:lihaipeng
*/
import java.io.*;
import java.util.*;
import java.lang.reflect.Method;
import org.apache.poi.hssf.usermodel.HSSFSheet;
impor ......
本文介绍的JAVA规则的说明分为3个主要级别,本篇抛弃了平时开发中很少遇到的情况,那些用得比较少的以后再高级篇里面出现。并有六个有用的国际软件开发重要注意的有关String的问题,遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。
(1) 如果有JDBC连接没有关掉的话,需要在"finally"方法中关掉
如 ......
最近要在一个JAVA工程中调用一个别人的DLL库,出现了以下问题:平台是JDK1.6.0_2
别人的DLL导出的函数类似于_Java_Sth_1Find@12 ,而我访问该函数的类如果在default package下就可以正常访问,就是说DLL导出的JNI是在默认包下的,而如果把该类放入特定的包下就会出现Exception in thread "main" java.lang.UnsatisfiedLink ......
String类没有提供修改一个已存在的字符串中的某一个字符的方法,例如:String greeting="Hello";如果想把greeting变成"Help!",不能直接把greeting的最后一位变成'p'和'!',而是保留需要的字符串,将替换的字符串通过"+"连接在一起。
greeting=greeting.su ......
一、避免在循环条件中使用复杂表达式
在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。
例子:
import java.util.Vector;
class CEL {
void method (Vector vector) {
......