java语言的反射机制为是java语言所提供的一项特别吸引人的地方,利用反射我们可以对程序的运行进行动态的监控,开发使用反射特性的程序需要使用一些专门的工具类,这些工具类位于java.lang.reflect包中。
1.Class类简介
Class类属于[flash=200,200][url][img]java.lang包中,不需要使用import语句的引入就可以直接使用,其对象代表一个类,并携带类的一些信息,主要包含构造器,方法和成员变量。
注:a.java程序在运行的过程中,每个类加载后都在内存中产生一个对应的Class对象,一般来说,这个对象由系统来自动维护,不需要程序开发人员关心,
b.这里的Class中的“C”为大[/img][/url][/flash]写,如果变成小写就声明成java的关键字了
下面首先通过一个列子来说明反射机制的使用
Java代码
package com;
import java.lang.reflect.Method;
public class ReflectTest {
Method method [];
public ReflectTest(){
try{
Class c=Class.forName("com.ReflectTest");
method=c.getMethods();
}catch(ClassNotFoundException e){
e.printStackTrace();
}
if(method.length>0){
for(int i=0;i0){
for(int i=0;i0){
for(int i=0;i:"+sc.getName());
System.out.println("二维int数组对应的类名为:"+ic.getName());
}
public static void main(String args []){
new ArrayReflection();
}
}
//运行结果为:
一维string数组对应的类名为:[Ljava.lang.String;
二维int数组对应的类名为:[[I
Java代码
public class ArrayReflection {
public ArrayReflection(){
String []stringArray=new String[4];
int[][]intArray=new int[4][4];
Class sc=stringArray.getClass();
Class ic=intArray.getClass();
System.out.println("一维string数组对应的类名为:"+sc.getName());
System.out.println("二维int数组对应的类名为:"+ic.getName());
}
public static void main(String args []){
new ArrayReflection();
}
}
//运行结果为:
一维string数组对应的类名为:[Ljava.lang.String;
二维int数组对应的类名为:[[I
public class ArrayReflection {
public ArrayReflection(){
String []stringArray=new String[4];
int[][]intArray=new int[4][4];
Class sc=stringArray.getClass();
Class ic=intArray.getClass();
System.out.println("一维string数组对应的类名为:"+sc.getName());
System.out.println("二维int数组对应的类名为:"+ic.getName());
}
public static void main(String args []){
new ArrayReflection();
}
}
//运行结果为:
一维string数组对应的类名为:[Ljava.lang.String;
二维int数组对应的类名为:[[I 从运进结果我们可以看出,数组对象也有对应的类,"["表示数组,两个就表示二维数组。
在java中,每种基本数据类型都有对应的代号,对于int----I,boolean---Z,byte--B,char--C,long---J.可以到java网站查询详情
2.Field类的简单介绍
Field类的对象代表成员变量,携带的是成员变量的一些信息,需要注意的是,与Class类相似,Field对象不能通过构造方法的形式来创建对象,必须通过Class类提供的get方法来获得。
Java代码
import java.lang.reflect.Field;
public class FieldReflectTest {
public static void main(String args []){
try{
Student stu=new Student(21,2003,true,"tom");
Class c=stu.getClass();
Field field[]=c.getFields();
for(int i=0;i
分享到:
相关推荐
java反射机制java反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制...
java 反射机制深入理解,java 反射机制深入理解,java 反射机制深入理解,
java反射机制和动态代理的原理,熟悉反射机制和动态代理
Java 反射机制 代码的实例 请认真阅读 运行此代码 只要读懂了 反射机制也就明白了
Java反射机制的实现_Reflection,适合学习了解反射机制。
一个例子8个demo让你了解Java反射机制
java反射机制的一些源代码,我学习的笔记,需要的可以下载看看
描述JAVA反射机制应用、举例。描述反射机制的具体实现及方法实现。
Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制
java反射机制核心代码,小弟一直弄不明白,怎么通过反射来调用私有成员方法,看了这个后,你可以随心调用private方法,和属性,记得添加setAccessable(true),哦,要不还是不行,如:method.setAccessable(true);
JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用
Java反射机制总结(实例分析) Java反射机制学习笔记
候捷谈Java反射机制 有助深入理解Java新特性
深入了解java反射机制的原理,通过反射机制可以破坏单例模式,如何防止通过反射机制拿到单例模式的构造器呢?用枚举类可破
java反射机制,代码/..安逸.不要错过
自己总结的java反射机制的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合java的爱好者和学习者
java反射机制原理和反射机制总结!!! java反射机制原理和反射机制总结!!!
java反射机制的实战练习
反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc...
java反射机制源码java反射机制源码java反射机制源码