踩坑记录、踩坑记录
相信大家都了解16
进制0xFFFFFFFF
在java中运行出来的结果是-1。如下图所:😎
但是同样的代码在Kotlin
中运行的结果是这样子的😮
这什么玩意儿❓❓❓❓❓
经过短暂的懵逼,迅速发现这个值已经超过了Int类型的取值范围2^31-1。怀疑Kotlin
应该是默认进行向上转型了。
于是利用AndroidStudio
的Kotlin
字节码转换功能,将上述代码转换为java之后,发现是这个样子的
public static final void main() {
long var0 = 4294967295L;
System.out.println(var0);
}
好家伙,果然是默认向上转型了。
那怎么办呢?我们加一个toInt()
试一试。
加上toInt()
就好了。
踩坑记录,Kotlin
如果使用16
进制的话,需要手动转换为自己需要的取值范围。
创作不易,如有帮助一键三连咯🙆♀️。欢迎技术探讨噢!