java中如何通过一个字符串来实例化一个类并调用其中方法

例如"className.methodName"不知道具体包名.... 例如"className.methodName" 不知道具体包名. 展开
 我来答
好嘛我是新来的
推荐于2017-10-03 · TA获得超过356个赞
知道小有建树答主
回答量:120
采纳率:100%
帮助的人:74万
展开全部

1、建立一个xml配置文件,将字符串和对应的类的全路径配置到xml文件中

例:

<bean>
<service id="您的字符串" class="您的类全路径(包名加类名)"/>
</bean>

2、使用xml解析技术可以得到您的字符串对应的类,方法有多中,小文件推荐使用dom4j,大文件使用sex。

3、使用反射技术获得类的实例

例:

Object object=Class.forName("您的字符串对应的类全路径").newInstance();

4、相关知识点:只要合理的用好这些知识点,就可以建立一个baseFactory类,作为项目的工厂类生产项目需要的各种类。这其实也算是抽象工厂的实现。

6fone
2015-08-12 · TA获得超过804个赞
知道小有建树答主
回答量:631
采纳率:33%
帮助的人:539万
展开全部
java反射机制可以实现对象的动态创建。

具体可以参考下面的:
http://blog.csdn.net/wgw335363240/article/details/6594730
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lhstorm
推荐于2017-10-02 · 超过18用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:61.6万
展开全部
是这个意思不?
public class test {

public static void main(String[] args) {
try {
// Class.forName中如果类在其他包下,则些全路径
Class xmlmenu = Class.forName("testB");
// newInstance()创建此 Class 对象所表示的类的一个新实例。
testB b = (testB) xmlmenu.newInstance();
b.getStr();
} catch (Exception e) {
e.printStackTrace();
}
}

}

class testB {

private String str = "abcd";

public void getStr(){
System.out.println(this.str);
}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
展静莎
2015-08-25 · 超过13用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:22.6万
展开全部
使用反射可以实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
剑岚利爱0G
2011-08-05 · 超过19用户采纳过TA的回答
知道答主
回答量:71
采纳率:100%
帮助的人:52.9万
展开全部
不知道具体的包名很明显是不行,需要实例化必须知道报名类名才行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式