-1

我有一个ArrayListordineDopoModifica

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;}

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

这就是我现在所做的:

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);不起作用 - 它总是返回 false,即使我确定chiaveArrayList.

4

1 回答 1

7

现在我想说一个 int 是否包含在我的 arrayList 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;

这是因为 anInteger不是 的实例Persona

于 2013-04-15T14:19:21.567 回答