Не могу найти `fun Cursor.getString (columnName: String): реализация String` - PullRequest
1 голос
/ 07 марта 2019

Где реализованы эти функции?

https://android.github.io/android-ktx/core-ktx/androidx.database/android.database.-cursor/index.html

Я видел пакет androidx.core.database, но не могу найти реализацию.Есть только такие функции, как эти.

inline fun Cursor.getBlobOrNull(index: Int) = if (isNull(index)) null else getBlob(index)
inline fun Cursor.getDoubleOrNull(index: Int) = if (isNull(index)) null else getDouble(index)
inline fun Cursor.getFloatOrNull(index: Int) = if (isNull(index)) null else getFloat(index)
inline fun Cursor.getIntOrNull(index: Int) = if (isNull(index)) null else getInt(index)
inline fun Cursor.getLongOrNull(index: Int) = if (isNull(index)) null else getLong(index)
inline fun Cursor.getShortOrNull(index: Int) = if (isNull(index)) null else getShort(index)
inline fun Cursor.getStringOrNull(index: Int) = if (isNull(index)) null else getString(index)

1 Ответ

0 голосов
/ 22 апреля 2019

Джейк Уортон удалил основанные на имени расширения для Cursor.

По его словам:

Они поощряют неэффективность. Вы должны посмотреть вверх имена столбцов один раз перед итерацией или используйте абстракцию более высокого уровня как Room или SQL Delight, который делает это для вас.

Вы можете найти полную историю git для этого пакета здесь: https://android.googlesource.com/platform/frameworks/support/+log/android-room-release/core/ktx/src/main/java/androidx/core/database

...