从类“x”调用方法,给出一个等于“x”的字符串?

时间:2016-08-07 12:31:17

标签: java android android-studio

我有一系列的类,每个类都有相同名称但功能不同的方法。我想知道如何以字符串的形式引用所需的类,因为它基于用户输入。

这样的东西......(我知道这不起作用,但它可以解决这个问题)

情景A:

String userinput = "Duck"

int result = "Duck".feed(parameter A);

情景B:

String userinput = "Dog"

int result = "Dog".feed(parameter A);

假设有> 20个类,所需的类只能从字符串中确定。

2 个答案:

答案 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){}
}}

我希望它可以帮助你解决问题