ArrayList.contains()方法不起作用

Mik*_*kly -1 java arrays contains arraylist

我有一个ArrayListordineDopoModifica

public static ArrayList<Persona> ordineDopoModifica = new ArrayList<Persona>();
Run Code Online (Sandbox Code Playgroud)

这是Persona课程:

class Persona {

public String nome;
public String prezzo;
public String ingredienti;
public String codp;
public byte[] immagine;}
Run Code Online (Sandbox Code Playgroud)

现在我想说一下int是否包含在ordineDopoModifica中......

这就是我现在所做的:

boolean c=sceltacibo.ordineDopoModifica.contains(chiave);
Run Code Online (Sandbox Code Playgroud)

这是我的重写等于方法:

@Override
public boolean equals(Object obj) {
    if (obj == null) {
      return false;
    }

    if (obj instanceof Persona) {
        Persona p = (Persona) obj;
        return codp.equals(p.codp);
    } 

    else return false;

  }
Run Code Online (Sandbox Code Playgroud)

但是boolean c=sceltacibo.ordineDopoModifica.contains(chiave);不起作用 - 它总是返回假,即使我确定chiave是在ArrayList.

Mag*_*lex 7

现在我想说我的arrayList中是否包含int ordineDopoModifica ...

您正在检查是否ArrayList<Persona> ordineDopoModifica包含int.它没有,它只包含Persona对象,因此它总是返回false.

更确切地说,这equals(Object obj)将失败:

if (obj instanceof Persona) {
    Persona p = (Persona) obj;
    return codp.equals(p.codp);
} else 
    return false;
Run Code Online (Sandbox Code Playgroud)

这是因为a Integer不是实例Persona.