Sun*_*iya 6 android nullpointerexception kotlin
我编写了一个执行数据库查询的函数.null如果它无法获取任何结果,我希望它返回.
fun getServiceCharge(model: String): ServiceChargeMasterList {
val unique = VideoconApplication.daoSession.serviceChargeMasterListDao.queryBuilder().where(ServiceChargeMasterListDao.Properties.ModelCategory.eq(model)).unique()
if (unique != null)
return unique
else
return null!!
}
Run Code Online (Sandbox Code Playgroud)
它给了我kotlin.KotlinNullPointerException.
谁能告诉我怎么解决这个问题?
Mar*_*eng 10
只需将您的退货类型指定为ServiceChargeMasterList?并返回即可null.该!!运营商是非常难看使用.
if如果unique()方法返回并且是可选的(或Java对象),则甚至不必使用该语句.在这种情况下,您的方法可能如下所示:
fun getServiceCharge(model: String): ServiceChargeMasterList? {
return VideoconApplication.daoSession.serviceChargeMasterListDao.queryBuilder().where(ServiceChargeMasterListDao.Properties.ModelCategory.eq(model)).unique()
}
Run Code Online (Sandbox Code Playgroud)
小智 6
用这个
fun getServiceCharge(model: String): ServiceChargeMasterList? =
VideoconApplication.
daoSession.
serviceChargeMasterListDao.
queryBuilder().
where(ServiceChargeMasterListDao.Properties.ModelCategory.eq(model)).
unique()
Run Code Online (Sandbox Code Playgroud)
说明
在Kotlin中,有可选类型.如果返回ServiceChargeMasterList,则告诉编译器您永远不会返回null.如果要返回null,则必须添加?在类型的末尾签名,表示您可以返回ServiceChargeMasterList的实例或null.
运营商 !!可以用Java解释
//Kotlin
variable!!
//Java
if (variable == null)
throw new kotlin.NullPointerException();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7482 次 |
| 最近记录: |