Конкатенация строк Java с BaseColumns._ID приводит к ошибке - PullRequest
0 голосов
/ 01 сентября 2011

В затмении, как только я наберу это:

BaseColumns._ID, + "=?"

Я получу:

The operator + is undefined for the argument type(s) String

Как это возможно, они обе строки, не так ли?

Теперь вот документация для BaseColumns._ID:

public static final String _ID

код, который я пишу:

public void deteleProfile(Long id) throws SQLException {
        SQLiteDatabase db = helper.getWritableDatabase();
        Integer i = db.delete(ProlificDatabase.TABLE, BaseColumns._ID, + "=?", new String[] {id.toString()});
        Log.d(TAG, i + " records deleted where id is " + id);

Ответы [ 4 ]

0 голосов
/ 01 сентября 2011

Прекрасные дополнительные , (запятая) ... любите запятые за то, что они есть, что означает разделитель между выражениями и болью ... за то, когда вы их пропускаете!

0 голосов
/ 01 сентября 2011

Вы имеете в виду BaseColumns._ID + "=?" вместо BaseColumns._ID, + "=?"?

Компилятор просто видит левую часть оператора + как пустую.

0 голосов
/ 01 сентября 2011

См. эту документацию о том, как использовать метод db.delete.Вместо BaseColumns._ID + "=?"- вы должны делать это:

Integer i = db.delete(ProlificDatabase.TABLE, BaseColumns._ID + "=?", new String[] {id.toString()});
0 голосов
/ 01 сентября 2011

У вас мошенническая запятая:

BaseColumns._ID, + "=?"

должно быть

BaseColumns._ID + "=?

В противном случае он пытается использовать + "=?" в качестве отдельного аргумента с +, действующим как унарный оператор.

...