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

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

if (firstUnread == 0) { return } 

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

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

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

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

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

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

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

 if (firstUnread == 0.toLong()) { return } 
  • 如何将此Java代码转换为Kotlin代码?
  • 了解Kotlin中的物化和通配符如何工作
  • Kotlin - 如何正确连接字符串
  • 我怎样才能创建一个“forEach”,返回一个对象是一个接收器的消费函数?
  • 如何在Kotlin中读取环境variables?
  • 为什么不聪明处理这种情况呢?
  • java.lang.NoClassDefFoundError:kotlin / jvm / internal / Intrinsics
  • 为什么这种随机生成图表的方式不公平?
  • Kotlin获取types为字符串
  • 用Kotlin建立一个Spring Boot项目
  • 在谓词中处理返回的最佳方法
  • Kotlin language will be the best programming language for Android.