cursor.getString 不能等于字符串变量

cursor.getString can't equal with string variable

我打算比较 cursor.getString(1) == pName,但代码总是不正确地进行比较。我正在做我想到的任何事情,但无法让它发挥作用。代码是这样的:

public Cursor addProduct(int id, String pName, int pPrice) {
    int getNewId = 0;
    Cursor cursor = viewProduct();
    if(cursor.getCount() == 0) {
        insertIntoProduct(id, pName, pPrice);
    } else {
        boolean i = false;
        cursor.moveToFirst();
        while(cursor.moveToNext()) {
            if(cursor.getString(1) == pName) {
                i = true;
                getNewId = cursor.getInt(0);
            }
        }
        if(i == true) {
            updateIntoProduct(getNewId, pName, pPrice);
        }
        else {
            insertIntoProduct(id, pName, pPrice);
        }
    }
    return cursor;
}

除了这个问题,这段代码工作正常。游标将获得 2 列索引的字段,但是 cursor.getString(1)== pName.

你不应该使用 == 来比较字符串,你可以试试下面的方法吗:

if(cursor.getString(1).equals(pName)) {
    i = true;
    getNewId = cursor.getInt(0);
}

在Java中,字符串是对象。它们可能相似,但是当您通过 == 运算符比较它们时,您正在检查两者是否是完全相同的对象。取而代之的是,您需要比较对象是否相似,如

if(cursor.getString(1).equals(pName)) {