提问人:ASwainy 提问时间:9/7/2022 最后编辑:ASwainy 更新时间:9/7/2022 访问量:57
如何在 Java 中将 ArrayList<String> 从一个方法传递到另一个方法。变量未初始化错误
How do I pass an ArrayList<String> from one method to another in Java. Variable not initialised error
问:
刚接触 Java 编码,请耐心等待。 我正在尝试将我的方法 getChosenWords(int length) 中保存的 ArrayList selectsenWords 传递给我的方法 getRandom(int length)。我需要 ArrayList,以便我可以选择一个随机索引并返回一个随机字符串。
请注意,它未在“类”字段中声明,我无法更改方法的参数。我必须找到另一种方式来传递,但我不确定如何传递。单元测试使用这些设置的参数,我无法更改参数或字段,因为其他类依赖于它们保持不变。ArrayList
我很确定这是需要更改的行,目前我有一个错误变量未在该行上初始化。ArrayList<String> chosenWords;
random.nextInt(chosenWords.size());
有什么建议吗?
方法1
// Takes strings in ArrayList words and stores strings with char int length to ArrayList chosenWords
public ArrayList<String> getChosenWords(int length) {
ArrayList<String> chosenWords = new ArrayList<>();
for(String word1 : words) {
if(word1.length() == length) {
chosenWords.add(word1);
}
}
return chosenWords;
}
方法2
//Returns a randomly selected string from ArrayList chosenWords
public String getRandom(int length) {
ArrayList<String> chosenWords;
Random random = new Random();
int randomIndex = random.nextInt(chosenWords.size());
return chosenWords.get(randomIndex);
}
答:
0赞
Riya
9/7/2022
#1
不要在函数中作为参数接收,而是采用 ArrayList。将 arraylist 传递给函数并返回从函数接收的值。length
getRandom()
chosenWords
getRandom()
getRandom()
希望能有所帮助。
评论
0赞
9/7/2022
如果提问者没有指定“我无法更改我的方法的参数”,那么所有这些都是有道理的。
2赞
matt
9/7/2022
#2
显而易见的解决方案,如果 OP 还没有使用它?
public String getRandom(int length) {
ArrayList<String> chosenWords = getChosenWords(length);
Random random = new Random();
int randomIndex = random.nextInt(chosenWords.size());
return chosenWords.get(randomIndex);
}
这样 selectsenWords 将被初始化。
评论
getChosenWords
ArrayList<String> chosenWords = getChosenWords(length);
getRandom
int