java动态调用现有变量
我有一个java程序,它使用多个HashMaps,一个用于假设餐厅中的每一类订单
我需要做一些处理并将文本输出到文件中。然而,我已经走了“坏”的路,只是写了六次代码,每次调用不同的hashmap
我不能留下确切的演示代码,因为这将作为一个项目交付,因此可能会被随机的剽窃发现者发现,并被错误地标记为剽窃,因为这将是一个巨大的代码块。然而,下面应该可以说明这个问题
DoSomething(These);
DoSomething(All);
DoSomething(Have);
DoSomething(Completely);
DoSomething(Different);
DoSomething(Names);
现在不用“DoSomething”,想象一下有20行代码,每20行我使用一个特定的HashMap
我无法准确地填充数组并使其使用数组中的数据,因为它将尝试使用字符串而不是HashMap(调用DoSomething(“这些”)而不是DoSomething(这些))
有没有办法动态调用HashMaps,这样我就可以将所有这些都缩短为一个循环,对每个HashMaps执行相同的操作
# 1 楼答案
如果代码的每一部分都非常相似,那么像eclipse这样的IDE就可以很容易地识别它,并且
refactor
它可以通过一个Map参数调用6次“DoSomething”如果你没有这样的IDE。。。用手做同样的事情,这并不难,而且会有回报(实际上,你不希望维持这种混乱状态,修复错误,或者通过代码使时间变为x6次)
# 2 楼答案
听起来是时候进行重构了
# 3 楼答案
如果你有几个HashMap,让我们说:
然后,可以使用以下内容填充新的ArrayList:
这样,您就可以使用增强的for循环在地图中进行迭代:
这里的一个好处是,您的列表是动态大小的,因此您可以随意添加和删除哈希映射
# 4 楼答案
基于你的问题,我不确定DoSomething方法应该做什么,但我理解为,它应该根据作为字符串提供的特定顺序类别返回特定的HashMap。在本例中,您只需为HashMap创建一个HashMap,并为第一个HashMap创建一个字符串键。根据提供的Sting键,您将获得相应的HashMap