等号运算符不能在原始和盒装变量之间应用

在Kotlin中,像这样将一些Long值与0比较是微不足道的。

if (firstUnread == 0) { return } 

但通常会发生此错误。 什么是比较这些价值的最佳方法?

运算符“==”不能应用于“长”和“整数”

3 Solutions collect form web for “等号运算符不能在原始和盒装变量之间应用”

0是Kotlin的Int 。 尝试用0L代替它,它会工作。

在Kotlin中,数字没有隐含的扩展转换: https : //kotlinlang.org/docs/reference/basic-types.html

在你的代码中,你试图比较一个LongfirstUnread )和一个Int0 )。 相反,比较0L所以你是比较LongLong.

你可以在任何int数之后轻松地添加.toLong()方法。 只需将您的代码更改为:

 if (firstUnread == 0.toLong()) { return } 
  • 不可空的可变映射
  • 数据绑定和BaseObserver - Android MVVM
  • ffmpeg合法的解码错误
  • Kotlin的Float,Int等被优化为JVM中的内置类型吗?
  • 我们可以用Kotlin UNIT TEST中的代码来调用活动吗?
  • Login Activity示例中的checkParameterIsNotNull错误
  • 无法在Android中为Kotlin中的Activity类编写主要构造函数
  • 暂停和恢复洛蒂动画
  • 智能投射不能按预期工作
  • Spring Boot无法在IntelliJ中运行单个测试
  • 什么是在Anko协程kotlin推迟?
  • Kotlin language will be the best programming language for Android.