例如,我有三个类(class):
public class A{public static void doSth(){}}
public class B{public static void doSth(){}}
public class C{public static void doSth(){}}
然后我有一个变量:
private int controlVariable;
然后根据这个controlVariable的值,我想调用上面不同类中的doSth()方法。例如:
switch (i)
{
case 1:
A.doSth();
break;
case 2:
B.doSth();
break;
case 3:
C.doSth();
break;
}
但是,使用上述方法非常繁琐。我可以使用变量来存储类的名称吗?例如:
classNameVariable = A;
classNameVaribale.doSth();
有人可以帮我解决这个问题吗?请不要使用继承。
最佳答案
在 Java 8 中,您可以使用方法引用:
public class A {
public static void doSth() {
System.out.println("A");
}
}
public class B {
public static void doSth() {
System.out.println("B");
}
}
public class C {
public static void doSth() {
System.out.println("C");
}
}
public class Sample {
public static void main(String[] args) {
Runnable[] methods = { A::doSth, B::doSth, C::doSth };
int controlVariable = 2;
methods[controlVariable].run(); // C
}
}
在此示例中,controlVariable
是基于 0
的索引。
关于java - Java中如何将类名存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29045090/