我有很多类,我希望用户键入一个名称,他将获得与特定对象(类)相同名称的实例。我通过以下代码简化它:

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)

在最后一行,我实际上想将字符串名称转换为类名称的实例。有什么办法吗?
将会有很多动物,所以我不想写很多开关例:“如果输入等于狮子”或斑马或蛇或...

最佳答案

我希望用户键入一个名称,他将获得与特定对象(类)相同名称的实例。

如果我没看错, Class.forName() 是您要寻找的东西?

使用给定的字符串名称返回与类或接口关联的Class对象。

Object obj = Class.forName(user_enterd_name).newInstance();

07-24 09:49
查看更多