【发布时间】:2013-04-09 10:38:03
【问题描述】:
我正在实现一个类,它的构造函数必须获取一些字符串作为参数,但我不知道这些字符串的数量。我可以在这里传递一个可变参数(字符串),但它是一个家庭作业,我们不能在我们的解决方案中使用任何类型的数组或其他不常见的库。 (它应该是一个ArrayList或类似的东西,因为我们现在正在学习Collections-Framework)我想将一个List作为参数传递给构造函数,但是这个列表必须在之前填充,而且它很长..应该很简单.
所以第一个带有可变参数的解决方案(不被接受)应该是这样的:
public MyClass(String... myStrings)
{
for (String string : myStrings)
{
myStrings.add(string);
}
}
所以它可以像这样使用,例如:
MyClass example = new MyClass("String1", "String2", "String3");
或
MyClass example2 = new MyClass("String1", "String2");
第二个(有点复杂,因为列表之前应该“填充”):
public MyClass(List<String> myStrings)
{
myPlayers = myStrings;
}
(ps:myPlayer 是一个实例变量,随后会被初始化)
那么你有什么想法吗(像第一个但没有
【问题讨论】:
-
String[] 首先是一个数组,(我们不能在这个作业中使用数组,所以我们也不能使用 varargs)并且它必须像我的第二个解决方案一样使用列表
-
第二个有什么问题?如果填充确实是一种选择,请使用 Arrays.asList(...) (是的,我知道它是一个数组/可变参数。我只是在这里看不到“复杂”的部分。
-
所以在主类(及其'主方法)中,我必须创建一个 ArrayList,用不同的字符串填充它,然后以该列表作为参数启动一个新游戏。我认为拥有类似于第一个解决方案的东西(如可变参数,但带有列表)非常简单,但似乎没有适合我的目标的东西。
标签: java arrays list collections variadic-functions