如何使用对象字符串来实例化对象

3 java oop

在JAVA中,假设我有一个字符串变量:

String x = "CoolClass";
Run Code Online (Sandbox Code Playgroud)

我有一个名为CoolClass的类,它有一个工作构造函数.如何使用变量x创建CoolClass对象,而不是键入CoolClass本身.

(我需要这样做,因为x将由用户给出并由Scanner读入,并且根据它们的输入,将相应地构造不同的对象/类).

Lou*_*man 9

Class.forName(x).newInstance()
Run Code Online (Sandbox Code Playgroud)

虽然反思可能很棘手且危险,但是会有效.你能告诉我们你真正想做什么吗?

  • 我通常更喜欢有一个明确的列表,甚至更好的是一个`Map <String,AnimalFactory>`.但这会奏效. (3认同)

Jar*_*sen 6

这项任务需要反思 - Class.forName(x).newInstance().
您可能想要使用不同的设计方法.为什么用户键入所需的类?