我有ArrayList
ordineDopoModifica
public static ArrayList<Persona> ordineDopoModifica = new ArrayList<Persona>();
这是Persona课程:
class Persona {
public String nome;
public String prezzo;
public String ingredienti;
public String codp;
public byte[] immagine;}
现在我想说一下int是否包含在ordineDopoModifica ...
中这就是我现在所做的:
boolean c=sceltacibo.ordineDopoModifica.contains(chiave);
这是我重写的等于方法:
@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;
}
但是boolean c=sceltacibo.ordineDopoModifica.contains(chiave);
不起作用 - 它总是返回false,即使我确定chiave
中有ArrayList
。
答案 0 :(得分: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;
这是因为Integer
不是Persona
的实例。