怎么根据一个字符串 包名+类名 得到一个真正的类?
字符串:"org.mjx.method.Message"需要得到:Message而且可以调用里面的方法现在可以反射出一个object出来但是我不想装强转成Message而...
字符串:"org.mjx.method.Message"
需要得到:Message
而且可以调用里面的方法
现在可以反射出一个object出来
但是我不想装强转成Message 而又可以得到Message里面的方法...
private static String methodName = "getMessage";
private static String className = "org.mjx.method.Message";
public void send(String className, String methodName) throws Exception {
Object object = Class.forName(className);
//就是这里不知道该怎么写? 要求是不可以强装Message 得到getMessage方法
Method m = object.getClass().getMethod(methodName);
} 展开
需要得到:Message
而且可以调用里面的方法
现在可以反射出一个object出来
但是我不想装强转成Message 而又可以得到Message里面的方法...
private static String methodName = "getMessage";
private static String className = "org.mjx.method.Message";
public void send(String className, String methodName) throws Exception {
Object object = Class.forName(className);
//就是这里不知道该怎么写? 要求是不可以强装Message 得到getMessage方法
Method m = object.getClass().getMethod(methodName);
} 展开
2个回答
展开全部
这样是不可行的。父类不能调用子类的方法!
追问
刚才试出来了,可以的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/**
* public class A{
*
* public int method(int a,String b,Object c);
*
* }
*
*/
String className = "com.xxx.classes.A";
String methodName = "method";
Class clz = Class.forName(className);//
Object obj = clz.newInstance();//实例化该类
Class []param = {int.class,String.class,Object.class};
//获取方法
Method m = obj.getClass().getDeclaredMethod(methodName, param);
//调用方法
Object []instanceArgs ={1,"2",new Object()};
Object aftercall = m.invoke(obj, instanceArgs);
if(aftercall != null){
int x = Integer.parseInt(String.valueOf(aftercall));
}
* public class A{
*
* public int method(int a,String b,Object c);
*
* }
*
*/
String className = "com.xxx.classes.A";
String methodName = "method";
Class clz = Class.forName(className);//
Object obj = clz.newInstance();//实例化该类
Class []param = {int.class,String.class,Object.class};
//获取方法
Method m = obj.getClass().getDeclaredMethod(methodName, param);
//调用方法
Object []instanceArgs ={1,"2",new Object()};
Object aftercall = m.invoke(obj, instanceArgs);
if(aftercall != null){
int x = Integer.parseInt(String.valueOf(aftercall));
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询