“告知”编译器我使用的是哪种ArrayList

时间:2014-08-25 15:39:30

标签: java arraylist

以下代码是构造函数中的方法。 。由于某种原因,Eclipse在代码的第四行声明了错误"赋值的左侧必须是变量"。我将把aroraylist作为参数放在由booleans构成的方法id中

boolean Referring(ArrayList results){
        int so = 0;
        int ca = 0;


            if (results.get(0) **** the error is here **** = false){
                return false;
        }
        return true;}

我认为错误的发生是因为编译器"不知道" ArrayList中有哪些参数。我可以告诉他"在某种程度上?

3 个答案:

答案 0 :(得分:3)

那里有两个错误。

您应该将ArrayList声明为ArrayList<Boolean>,并使用double equals运算符执行比较。

boolean Referring(ArrayList<Boolean> results){
    int so = 0;
    int ca = 0;
    if (results.get(0) == false){
        return false;
    }
    return true;
}

此外,使用布尔值,不需要进行比较。你可以使用

if (!results.get(0))

答案 1 :(得分:2)

  

我认为错误的发生是因为编译器&#34;不知道&#34;哪一种   参数在ArrayList中。我可以告诉他&#34;在某种程度上?

使用泛型:

ArrayList<Boolean> results;

有关泛型的更多信息:http://docs.oracle.com/javase/tutorial/java/generics/

你的另一个问题源于使用单个=来比较一个值。您应该使用==或.equals函数,具体取决于您要执行的操作。但是,既然你(大概)正在使用布尔值,你可以直接引用它们:

if (!results.get(0)){

答案 2 :(得分:0)

您应该使用==作为比较运算符,而不是=

无论如何,您可以将ArrayList的类型放在尖括号之间:ArrayList<ObjectType>