java学习之反射机制
什么是反射
java程序可以在运行期间动态的加载、解析和使用一些在编译阶段并不确定的类型,这一机制被称为“反射(reflection)”或者“内省(introspection)”.
反射机制提供的功能
1,加载运行时才能确定的类型
2,解析类的结构、获取其内部信息
3,操作该类型或其实例
1》访问属性
2》调用方法
3》创建新对象
java.lang.class 类
class类的实例用于表示运行时的JAVA数据类型,包括类、接口、数组、枚举、注解和基本数据类型
在类加载时, Java虚拟机会自动创建相应的class对象
java.lang.reflect包
1,java.lang.reflect.fleld
2,java.lang.reflect.Method
3,java.lang.reflect.Costructor
4,java.lang.reflect.Modifer
5,java.lang.reflect.Array
使用反机制的基本步骤
获取目标类型相应的class对象
调用Class对象内省方法获取目标类成员信息
访问目标类方法信息/操作目标类成员
例一
package com.manager;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Scanner;
public class TestReflection01 {
public static void main(String[] args) {
System.out.println("input the type of the class");
Scanner scan = new Scanner(System.in);
String className= scan.next();
System.out.println("current class name : " + className);
try {
//获取CLASS对象
Class c = Class.forName(className);
//解析属性信息
Field[] fs = c.getFields();
for(Field f : fs){
System.out.println("----------------
相关文档:
JAVA中用于处理字符串的“三兄弟”
JAVA中用于处理字符串常用的有三个类:java.lang.String、java.lang.StringBuffer、java.lang.StringBuilder,这三者的共同之处都是final类,不允许被继承,这主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着的,且考虑到防止其中的参数被修改影响到其它的应用。 ......
commons-beanutils-1.8.0.jar不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean
commons-collections.jar 不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap
commons-lang-2.4.jar不加这个包
java.lang.NoClassDefFoundError: org/apa ......
转 : http://www.jcourse.cn/read/234
2009-03-02 作者:
zhangtaolv
在我们日常开发中,经常会遇到对文本的操作,并且在一般的MIS系统中,文本操作尤为多,如用户名、文章内容、文章标题、合同内容等。在之前的教程中,我也给大家讲解了Java中最基本的字符串操作的类,String。在之前的教程中我也给大家讲了Str ......
public static void main(String[] args) {
String DATE_FORMAT = "yyyy-MM-dd";
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
DATE_FORMAT);
Calendar c1 = Calendar.getInstance();
c1.set(1999, 0, 14);
&n ......
程序中的编码风格让我们的编程工作变得轻松,特别是程序维护员,他们要经常阅读其他人编写的程序编码,这一点尤其突出。编码规范从根本上解决了程序维护员的难题;规范的编码阅读和理解起来更容易,也可以快速的不费力气的借鉴别人的编码。对将来维护你编码的人来说,你的编码越优化,他们就越喜欢你的编码,理解起来也就越 ......