我喜欢创建一个将从方法传递给方法的数据列表,但是我不能使用结构,因为包含在这个列表中的数据将根据输入而变化。不同类型的列表?
例如
if (x == 1) {
a = 1
b = true
c = 42
d = "hello"
}
if (x == 2) {
a = 2
b = 'g'
c = "sup"
}
我相信我的选择是这样的:
- 创建一个字符串数组或列表,并且投中的数据回到它原来是从字符串。这很麻烦,可能会导致无法解释的输入错误,但不会太糟糕,因为它在运行时都会被检测到。
- 为每种可能性创建一个结构 - 这是否是一种好的做法?
- 不知何故使用泛型。据我所知,虽然泛型是类型安全的,但不是类型严格的,但在使用之前必须将其转换为类型。例如,如果我想在这里列出项目,我需要将它们转换为字符串,就像在解决方案1中发生的情况一样,这使得它无用。
我的问题是,那么这些选项中哪一个最好?还是有一种替代选择使用某种我不知道的泛型类型?每种情况下的可能变量的数量可能会改变,就像它们的类型一样。我希望能够将单个List或Array返回给调用方法,以便它可以适当地处理结果。它将知道如何处理基于a的值的每组数据,因为它将是'动作选择'标识符。我也知道每次将它们投射到物体上并返回是非常紧张的,所以我宁愿避免这种情况。
这可能是很简单,但它已经难倒了我...
为了提供更多信息,基本上这是根据用户的选择尝试解释来自输入字符串的各种数据。如果他们说了一件事情,我需要检查这些数据,然后抓住它,制作一份这些数据及其类型的列表(各种信息都来源于此信息)。 问题是我想让它可扩展,所以我总是可以添加东西而不必遵循严格的结构,并且我不应该在使用时重新设置所有东西。 我喜欢ArrayList的建议,以及重构。我会尝试修改它。 – George 2009-09-07 13:49:46