找不到`有趣的Cursor.getString(columnName:String):String`实现

问题描述 投票:1回答:1

这些功能在哪里实施?

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)
android kotlin android-ktx
1个回答
0
投票

jake Wharton删除了Cursor的基于名称的扩展。

用他的话说:

他们鼓励低效率的模式。您应该在迭代之前查找列名称一次,或者使用像Room或SQL Delight这样的更高级别的抽象来为您执行此操作。

你可以在这里找到这个包的完整git历史:https://android.googlesource.com/platform/frameworks/support/+log/android-room-release/core/ktx/src/main/java/androidx/core/database

© www.soinside.com 2019 - 2024. All rights reserved.