[英]ArrayList.contains() method not work
我有一個ArrayList
ordineDopoModifica
public static ArrayList<Persona> ordineDopoModifica = new ArrayList<Persona>();
這是角色角色類:
class Persona {
public String nome;
public String prezzo;
public String ingredienti;
public String codp;
public byte[] immagine;}
現在我想說說ordineDopoModifica中是否包含int ...
這就是我現在要做的:
boolean c=sceltacibo.ordineDopoModifica.contains(chiave);
這是我重寫的equals方法:
@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);
不起作用-即使我確定chiave
在ArrayList
,它也始終返回false。
現在我想說一下我的arrayList ordineDopoModifica中是否包含int ...
您正在檢查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
的實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.