今天寫Android的小項目時,想看一下可不可以所有的數據類型在插入的時候都轉化爲字符串。於是看了一下關於類型綁定的的那塊源代碼。在SQLiteProgram的375行,發現綁定Boolean類型的時候進行了重複綁定。那塊代碼如下:
for (int index : mBindArgs.keySet()) {
Object value = mBindArgs.get(index);
if (value == null) {
native_bind_null(index);
} else if (value instanceof Double || value instanceof Float) {
native_bind_double(index, ((Number) value).doubleValue());
} else if (value instanceof Number) {
native_bind_long(index, ((Number) value).longValue());
} else if (value instanceof Boolean) {
Boolean bool = (Boolean)value;
//就這兒
native_bind_long(index, (bool) ? 1 : 0);
if (bool) {
native_bind_long(index, 1);
} else {
native_bind_long(index, 0);
}
} else if (value instanceof byte[]){
native_bind_blob(index, (byte[]) value);
} else {
native_bind_string(index, value.toString());
}
}
不知道他們是寫錯了嗎,還是怎麼回事兒。