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("----------------
相关文档:
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 ......
java中的URLEncoder和URLDecoder类
URLEncoder类包含将字符串转换为application/x-www-form-urlencoded MIME 格式的静态方法。
为了解决web设计中不同操作系统间的差异性,我们在URL中使用的字符就必须是一个ASCII字符集的固定字集中的元素,具体如下:
1.大写字母A-Z
2.小写字母a- ......
用三种方法来实现字符串的反转
/**
* @(#)ReverseString.java
*
* ReverseString application
*
* @author
* @version 1.00 2010/4/20
*/
import java.util.*;
import java.io.*;
public class ReverseString {
public static void main(String[] args) throws IOException{
......
首先看清楚几种常用的字符集编码(java语言是采用unicode字符集编码来表示字符与字符串的):
ASCII(American Standard Code for Information Interchange,美国信息互换标准代码),是基于常用的英文字符的一套电脑编码系统。我们知道英文中经常使用的字符、数字符号被计算机处理时都是以二进制码的形式出现的。这种二进 ......