写个例子复习一下java反射。
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
/**
*
* <pre>
* Title:反射工具类
* Description: 反射指定类的方法和Spring容器中Bean的方法
* </pre>
* @author o_oand0_0
*/
/*
* 修改历史
* $log$
*/
public class ClassCallUtil implements ApplicationContextAware{
private ApplicationContext applicationContext;
/***
* 反射spring容器中Bean的方法
* @param beanName //要反射的bean名称(配置在Spring容器的Bean)
* @param methodName //要反射的方法名
* @param parmsVaues //方法的参数数组
* @return
*/
public Object invkMtdOfSprBean(String beanName,String methodName,Object[]parmsValues) {
try {
Object owner=this.getApplicationContext().getBean(beanName);
Class clazz=owner.getClass();
Class[]parmClass=null;
if(parmsValues!=null&&parmsValues.length>0){
parmClass=new Class[parmsValues.length];
for(int i=0;i<parmsValues.length;i++){
parmClass[i]=parmsValues[i].getClass();
}
}
Method method=clazz.getMethod(methodName, parmClass);
return method.invoke(owner, parmsValues);
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
return null;
}
return null;
}
/***
* 反射普通Java类
* @param className //要反射的类全名
* @param methodName //要反射的方法名
* @param parmsVaues //方法的参数数组
* @return
*/
public Object invkMtdOfPlnClass(String className,String methodName,Object[]parmsValues) {
try {
Object owner=Class.forName(className);
Class clazz=owner.getClass();
Class[]parmClass=null;
if(parmsValues!=null&&parmsValues.length>0){
parmClass=new Class[parmsValues.length];
for(int i=0;i<parmsValues.length;i++){
parmClass[i]=parmsValues[i].getClass();
}
}
Method method=clazz.getMethod(methodName, parmClass);
return method.invoke(owner, parmsValues);
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}catch(Exception e){
return null;
}
return null;
}
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this.applicationContext = applicationContext;
}
public ApplicationContext getApplicationContext() {
return applicationContext;
}
}
调用实例:
public static void main(String[] args) {
ClassCallUtil db=new ClassCallUtil();
String id ="12";
byte[] bs =null;
// testService是applicationContext.xml中配置的一个对象名,改对象对应的接口有个readPhoto(String id)方法
bs=( byte[] )db.invkMtdOfSprBean("testService", "readPhoto", new Object[]{id});
// ......
}
分享到:
相关推荐
java反射 java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射java反射
JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用
java反射
java反射,获取所有属性、方法以及List集合类
java反射java反射java反射java反射java反射
1.通过Java反射机制获取JavaBean对象。 2.通过JavaBean全路径字符串获取JavaBean对象。 3.获取JavaBean注解信息
Java反射
代码为JAVA反射的一个DEMO,适合初学者临摹学习,还附有properties的创建方法,比较基础。
Java反射经典实例 Java反射经典实例 Java反射经典实例 Java反射经典实例
这是一本关于Java反射机制论文集合的书。其中包含基本的理论及各种实例。... 关键字有:Java Java反射机制 Java反射 Java反射理论 Java反射实例 Java反射例子 反射原理 反射 网络论文 集合 汇总 总结 Class。
在向学生讲解Class.forName()方法的使用时,有时需要扩展讲解为什么这样书写的原理,于是,扩展讲解Java反射技术可以查看被监视类的方法(构造方法和普通方法)、公有属性的功能,以达到封闭功能的效果。该例子使用...
反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc...
java 反射 调用私有方法(有参数私有方法)获取私有属性值
java反射机制java反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制...
java 反射demo
java反射获取所有属性,获取所有get方法,包括子类父类,以及包括List集合类
java 反射中操作数组 java 反射中操作数组 java 反射中操作数组
Java 反射机制、Java 的类反射机制、Java 反射机制的学习、Java 反射Reflection--运行时生成实例 java反射机制的手册文档
java反射理论及实现
java反射机制原理和反射机制总结!!! java反射机制原理和反射机制总结!!!