Java 基于字符串的值调用不同的类对象

Java 基于字符串的值调用不同的类对象,java,android,string,Java,Android,String,我有一个包含类名的字符串(str),并希望根据字符串值调用该类的方法。如何实现这一点 前 如果str=“classA”我想调用classA.domatrix()方法 如果str=“classB”,那么classB.domatrix()可以 if(str.equals("ClassA")) ClassA.domatrix(); else if(str.equals("ClassB")) ClassB.domatrix(); 我们不能在这里使用switch,因为switch不能处理字符串,但在sw

我有一个包含类名的字符串(str),并希望根据字符串值调用该类的方法。如何实现这一点

如果str=“classA”我想调用classA.domatrix()方法 如果str=“classB”,那么classB.domatrix()可以

if(str.equals("ClassA"))
ClassA.domatrix();
else if(str.equals("ClassB"))
ClassB.domatrix();
我们不能在这里使用switch,因为switch不能处理字符串,但在switch情况下最新版本的jdk支持字符串

或者另一种解决方案是使用
enum

这可能会有所帮助

String str = "ClassA";
Class.forName(str).newInstance();

注意:它应该有一个默认的无参数构造函数。在类的包名前面加上前缀。

什么是classA?是活动课吗?什么是domatrix静态方法??查找有关java反射的信息。classA只是任何java类,而domatrix可以是静态方法。@v1kas是任何java类,甚至是活动类?当我有两个CALS时,这很好。如果我有数百个CALS呢?那么你要么使用开关大小写,要么定义一个枚举,然后在开关大小写中使用。