我对Android SQLite API的设计很好奇。例如,我们有
public void execSQL(String sql, Object[] bindArgs)
对于不返回数据的 SQL,我们也有
public Cursor rawQuery(String sql, String[] selectionArgs)
对于确实返回数据的 SQL。
为什么在前一种情况下参数预期为 Object 数组,而在后一种情况下为 String 数组?我知道由于 SQLite 的类型亲和力,只接受字符串可能是有意义的。但是,如果是这样,为什么不始终使用字符串数组作为参数呢?是否有一些非字符串参数对 有意义execSQL
但对 没有意义rawQuery
?