ArrayList赋值

时间:2015-01-13 23:41:55

标签: java arraylist

我在主方法中编写了以下代码:

    ArrayList<String> finalPhrases = new ArrayList<String>();
    switch (response){
    //TODO: FIX
        case 2: finalPhrases = modeOne(inputScanner, patternScanner);
        case 1: finalPhrases = modeTwo(inputScanner, patternScanner);
        case 0: finalPhrases = modeThree(inputScanner, patternScanner);
    }   

    System.out.println(finalPhrases);

其中(response)是一个变量,它将是2,1,0和modeOne,Two,Three是我写的返回ArrayList的方法。我遇到了一个问题,当我尝试打印finalPhrases时,它表明ArrayList是空的,我认为这可能与内存引用有关。

我知道这些方法正常运行,因为当我运行

System.out.println(modeOne(inputScanner, patternScanner)) 

它打印出正确的arraylist,但是一旦我分配它,它就会失败。有人能告诉我如何解决这个问题吗?

1 个答案:

答案 0 :(得分:5)

您需要在案例陈述中使用break。

ArrayList<String> finalPhrases = new ArrayList<String>();
switch (response){
//TODO: FIX
    case 2: 
        finalPhrases = modeOne(inputScanner, patternScanner);
        break;
    case 1: 
        finalPhrases = modeTwo(inputScanner, patternScanner);
        break;
    case 0:
        finalPhrases = modeThree(inputScanner, patternScanner);
        break;
    default:
        // TODO add code for value other than 0, 1 or 2
        break;
}   

System.out.println(finalPhrases);

我添加了default子句来捕获响应的值不是0,1或2的场景。

我怀疑响应对你想要捕获的场景有不同的值,所以默认在这里很重要,你应该为TODO编写代码。