使用BaseColumns._ID的Java字符串连接会带来错误

时间:2011-09-01 16:47:05

标签: java android string-concatenation

在我输入的时候就在eclipse中:

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 :(得分:0)

你有一个流氓逗号:

BaseColumns._ID, + "=?"

应该是

BaseColumns._ID + "=?

否则,它会尝试将+ "=?"用作独立参数,+充当一元运算符。

答案 1 :(得分:0)

您的意思是BaseColumns._ID + "=?"而不是BaseColumns._ID, + "=?"吗?

编译器只看到+运算符的左侧为空。

答案 2 :(得分:0)

请参阅有关如何使用db.delete方法的this文档。而不是BaseColumns._ID,+" =?" - 你应该这样做:

Integer i = db.delete(ProlificDatabase.TABLE, BaseColumns._ID + "=?", new String[] {id.toString()});

答案 3 :(得分:0)

可爱的额外,(逗号)...喜欢它们的逗号,这意味着表达和痛苦之间的分隔......当你忽视它们时!