если вы используете SQLite в Android, вы должны знать этот метод запроса:
Cursor query (String table, String[] columns, String selection, String[] selectionArgs, ...)
Эта часть заставила меня задуматься о ее дизайне: Android заставляет нас передавать аргументы запроса в виде массива String (String[] selectionArgs
). Это может иметь некоторые недостатки:
- Если вы хотите передать в качестве аргумента целое число, вы должны сначала преобразовать его в строку (
yourInt + ""
или String.valueOf(yourInt)
), это создает много временных строк объекты. - Если вам нужно использовать только 1 аргумент, вы должны создать массив только с 1 элементом.
Намного проще, если входной аргумент Object... selectionArgs
, что Вы можете передать целочисленное значение или использовать одну строку без создания массива .
Я не знаю, почему Android создатели сделали это? Может быть потому, что String неизменен, тогда защитит вас от SQL Injection?