【发布时间】:2011-01-09 13:29:35
【问题描述】:
我们有一个ArrayList 几个类中的项目,每次我想在列表中插入一个新项目时都会给我带来麻烦。以我的方式设计类是我的错误,但现在更改设计会比它的价值更令人头疼(官僚瀑布模型。)我应该预料到客户提供给我们的文档的格式更改瀑布该死的。
我想在 python 中编写一个简单的脚本,该脚本进入一个类,将项目添加到列表中,然后递增以下项目的所有检索。这听起来不太解释:
Foo extends Bar{
public Foo(){
m_Tags.add("Jane");
m_Tags.add("Bob");
m_Tags.add("Jim");
}
public String GetJane() { return m_ParsedValue.get( m_Tags.get(1) ); }
public String GetBob() { return m_ParsedValue.get( m_Tags.get(2) ); }
public String GetJim() { return m_ParsedValue.get( m_Tags.get(3) ); }
}
你看我是否想在“Jane”和“Bob”之间添加一个值,然后我必须在 Get* 函数中增加整数。我只想用 Python 编写一个简单的脚本来为我工作。我非常尊重的人建议使用正则表达式。
编辑:
是的,LinkedHashMap。如此简单,如此简单,现在不在设计规范中。我讨厌瀑布。恨之入骨。这整个部分是“不应该花费太多时间来设计”的“小”和“简单”的部分。我犯了错误。它现在卡在石头上了。
【问题讨论】:
-
让我直截了当地说:你有大量难以管理的 Java 代码,其中填充了幻数和硬编码字符串,你想在中间插入一个并使用 python 递增以下数字?
-
你为什么不使用 HashMap 呢?只需使用字符串作为键并返回您想要的数字......在我看来这是一种更自然的方式。
-
@Jorenko:是和不是。这些字符串取自专有格式的客户文档,这些文档传递给我们的应用程序。代码不大,也没有违反 DRY。然而,你是对的。有很多神奇的数字,是的,我想在中间插入一个。
-
@Kelben - LinkedHashMap,你说得对。我只是在做设计时没有想到要使用它。我现在正在为疏忽买单。
-
@wheaties: 你不能做类似
has_map.put("Jane", new Integer(i++));之类的事情来跟踪订单(出现的第一个名字是0,第二个1,等等......)然后让@ 987654324@ 以相同的顺序。将保留文档中的顺序,以及要返回的数字。