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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何通过一个字符串来实例化一个类并调用其中方法相关的知识,希望对你有一定的参考价值。

例如"className.methodName" 不知道具体包名.

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

例:

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

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

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

例:

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

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

参考技术A java反射机制可以实现对象的动态创建。

具体可以参考下面的:
http://blog.csdn.net/wgw335363240/article/details/6594730
参考技术B 是这个意思不?
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);


本回答被提问者采纳
参考技术C 使用反射可以实现。 参考技术D 不知道具体的包名很明显是不行,需要实例化必须知道报名类名才行

以上是关于java中如何通过一个字符串来实例化一个类并调用其中方法的主要内容,如果未能解决你的问题,请参考以下文章

动态加载类并实例化对象 —— newInstance

创建java类并实例化类对象

java中的实例化对象有啥用???????

Java学习日记------面向对象②

如何在 jar 文件上远程执行方法

C#反射实例化类并调用类的方法