是否可以根据用户的输入创建类对象?

问题描述:

我有一个创建基本杂货店物品的类(class storeItems)。我想让用户根据我从用户那里收到的参数创建一个新的类对象来制作他们自己的杂货店物品;即:“什么名字?” “多少钱?” “有多少库存?”等等。我也不想定义可以创建的对象的数量,以便它可以根据用户的需要进行扩展。是否可以根据用户的输入创建类对象?

除了对象变量名称本身以外,一切结构都是正确的。

我将如何去创建这些对象?我的谷歌搜索的大部分都建议使用地图,但我不能为我的生活弄清楚我将如何构建这个。

实际上,这就是我想要做的事:

public static Map<String,storeItems> storeItemMapper = new HashMap<String,storeItems>(); 

public static void itemBuilder(String mapObjName, String itemName, double price, int initialQuantity) { 
    storeItems object[i] = new storeItems(itemName, price, initialQuantity); 

    storeItemMapper.put(mapObjName, object[i]); 
} 
+1

问题出在哪里?什么是不符合你的计划?顺便说一下,类名称应该是Camel Case标准,即StoreItems而不是storeItems。 – Doleron

你被错误索引变量声明:

storeItems object[i] = new storeItems(itemName, price, initialQuantity); 

尝试:

storeItems object = new storeItems(itemName, price, initialQuantity); 

没有指数[我]。正如我在评论中所说的那样,您应该使用CamelCase标准来命名课程:

StoreItems object = new StoreItems(itemName, price, initialQuantity); 
+0

我知道该对象[我]不工作,我试图找出是否有可能根据用户输入命名对象。这是解释我想要做什么的最好方式。举个例子:我会要求输入,然后我= reader.nextLine(); –

+0

你的意思是“命名对象”?设置对象的属性值或进行映射(“名称” - >对象)以便以此名称检索对象?在最后一种情况下,Map接口及其实现(HashMap,Hashtable,TreeMap,...)可以提供一种短暂的机制(在内存中)。如果你需要持久化的东西,你应该使用序列化表单,基于文件的持久性,或者将对象保存到数据库关系或非关系中。 – Doleron

+0

我想让用户给对象变量名称的输入。 –