java Class.forName 实例化对象,并调用类中相应的方法
service.xml文件<?xmlversion="1.0"encoding="UTF-8"?><Actions><action>com.action.Test2</a...
service.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<Actions>
<action>com.action.Test2</action>
</Actions>
package com.action
public class Test2{
public void sayHello(){
System.out.println("Hello World!");
}
}
public class Test{
public static void main(String[] args) throws Exception{
SAXReader reader=new SAXReader();
Document document=reader.read(new File("services.xml"));
Element root=document.getRootElement();
Element action=root.element("Actions");
String action=action.elementText("action");
Class c=Class.forName(action);
}
}
Test 中 通过Class.forName() 加载了 Test2 类,那么怎么实列化一个Test2对象,并调用Test2中的方法? 展开
<?xml version="1.0" encoding="UTF-8"?>
<Actions>
<action>com.action.Test2</action>
</Actions>
package com.action
public class Test2{
public void sayHello(){
System.out.println("Hello World!");
}
}
public class Test{
public static void main(String[] args) throws Exception{
SAXReader reader=new SAXReader();
Document document=reader.read(new File("services.xml"));
Element root=document.getRootElement();
Element action=root.element("Actions");
String action=action.elementText("action");
Class c=Class.forName(action);
}
}
Test 中 通过Class.forName() 加载了 Test2 类,那么怎么实列化一个Test2对象,并调用Test2中的方法? 展开
2个回答
展开全部
看有没有参数,无参就直接c.newInstance();
有参数就用构造器的newInstance(参数);
调用方法的话先用c.getMethod(,)得到方法 ,再用得到的method执行
针对你这个具体的,代码就是
Class c=Class.forName("com.action.Test2");
Object test = c.newInstance();
Method method = c.getMethod("sayHello", null);
method.invoke(test, null);
有参数就用构造器的newInstance(参数);
调用方法的话先用c.getMethod(,)得到方法 ,再用得到的method执行
针对你这个具体的,代码就是
Class c=Class.forName("com.action.Test2");
Object test = c.newInstance();
Method method = c.getMethod("sayHello", null);
method.invoke(test, null);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询