Java &引用;“通知”;编译器知道我使用的是哪种ArrayList

Java &引用;“通知”;编译器知道我使用的是哪种ArrayList,java,arraylist,Java,Arraylist,以下代码是构造函数中的方法。出于某种原因,Eclipse在代码的第四行声明了一个错误“赋值的左侧必须是变量”。我将把arraylist作为参数放在由布尔值组成的方法id中 boolean Referring(ArrayList results){ int so = 0; int ca = 0; if (results.get(0) **** the error is here **** = false){

以下代码是构造函数中的方法。出于某种原因,Eclipse在代码的第四行声明了一个错误“赋值的左侧必须是变量”。我将把arraylist作为参数放在由布尔值组成的方法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中有什么类型的参数。我能以某种方式“通知他”吗?

有两个错误

您应该将
ArrayList
声明为
ArrayList
,并使用双等于运算符执行比较

boolean Referring(ArrayList<Boolean> results){
    int so = 0;
    int ca = 0;
    if (results.get(0) == false){
        return false;
    }
    return true;
}
我认为发生错误是因为编译器“不知道”什么类型 ArrayList中包含了个参数。我能以某种方式“通知他”吗

使用泛型:

ArrayList<Boolean> results;

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


无论如何,您可以将
ArrayList的类型放在尖括号中:
ArrayList

尝试
结果。get(0)=false
是否尝试进行比较?因为
=
不是比较运算符,
=
是。您的错误是因为您正在为函数调用指定
false
。更简单的是:
如果(!(布尔)结果。获取(0)){/**}
给编辑器:不要解决问题,而是解决实际问题。修复格式是一回事,通过修复问题从根本上“打破”问题完全是另一回事。将
=
更改为
=
就是答案,因此更改问题会否定问题的目的,只会让其他人想知道问题是什么。可能其他元素不是
布尔值,它显示了OP.@LuiggiMendoza的一个糟糕的设计通过声明
ArrayList
我显示的方式,
ArrayList
必须是一个布尔值
ArrayList
,否则编译器会抛出一个错误,我是说这可能是一个
ArrayList
,所以你不应该假设它是
ArrayList
@LuiggiMendoza,这毫无意义。如果OP想要进行
布尔值
比较,那么所有的对象都必须是
布尔值
,所以是的,我可以假设它。使用
ArrayList
对我来说毫无意义。如果您只想比较第一个元素并将其他元素用于其他类型的操作,则完全有意义。考虑一下:您可以从文件中读取数据,而不是使用类,您只需将所有内容保存在数组中(或
ArrayList results
以便于使用),然后将从
扫描仪读取的数据加载到此
results
中,并将其发送到另一个方法进行分析,但是我知道只有第一个元素会为
true/false
存储一个标志,不管它有什么用途。谢谢。@Atlantis没问题。Capital-B Boolean是原语小写B Boolean的包装类。对于需要对象的对象,可以使用包装器类,因为原语不是对象。ArrayList只能包含对象,因此需要使用Boolean而不是Boolean。请注意,当您向ArrayList添加一个基本布尔值时,Java会通过一个称为自动装箱的过程自动将其转换为包装布尔值。
ArrayList<Boolean> results;
if (!results.get(0)){