我有一系列的类,每个类都有相同名称但功能不同的方法。我想知道如何以字符串的形式引用所需的类,因为它基于用户输入。
这样的东西......(我知道这不起作用,但它可以解决这个问题)
情景A:
String userinput = "Duck"
int result = "Duck".feed(parameter A);
情景B:
String userinput = "Dog"
int result = "Dog".feed(parameter A);
假设有> 20个类,所需的类只能从字符串中确定。
答案 0 :(得分:0)
int result;
if(userinput.equals("Duck")){
Duck duck = new Duck();
result = duck.feed(parameter A);
}
else if(userinput.equals("Dog")){
Dog dog = new Dog();
result = dog.feed(parameter A);
}else{
//default message
}
// do what you want to do with result
答案 1 :(得分:0)
可以使用反射Class.forName("包含名称的完整类名")来实现.newInstance();
场景:如果你有两个类,比如" dog"和" cat"并且两者都有相同的方法,如吃然后创建一个界面"动物"用吃法
class dog implements animal{public void eat(){System.out.println("dog is eating");}}
class cat implements animal{public void eat(){System.out.println("cat is eating");}}
class test{
public static void main(String arg[]){
String input = "dog";
animal testAnimal = null;
try{
testAnimal = Class.forName(input).newInstance();
}
catch(Exception e){}
}}
我希望它可以帮助你解决问题