Eda*_*rit 9 java string object instanceof
我有很多类,我希望用户键入一个名称,他将获得一个特定对象(类)的同名实例.我用这段代码简化了它:
public class Animal {...}
public class lion extends Animal{...}
public class zebra extends Animal{...} // and so on for a lot of animals
String name = input from user
Animal something = new Animal(instance of the input name)
Run Code Online (Sandbox Code Playgroud)
在最后一行,我实际上想将字符串名称转换为类名的实例.有什么办法吗?会有很多动物,所以我不想写很多开关案例:"如果输入等于狮子"或斑马或蛇或......
我建议在这里创建一个Factory
类来为您创建合适的实例
例如:
public class AnimalFactory {
public Animal getAnimal(String input) {
if(input.equals("lion")) {
return new lion();
} else if(input.equals("zebra")) {
return new zebra();
}
}
}
Run Code Online (Sandbox Code Playgroud)