记两次踩到的坑-Long类型赋值与比较
程序员文章站
2022-07-12 20:15:28
...
通过对象属性获取Long类型数据t,与常量Long类型比较时,
应判断t是否为空
第二次的坑(最近的一次)
半年前的坑见<java条件表达式陷阱>
这段代码编译后再反编译如下:
应判断t是否为空
第二次的坑(最近的一次)
public class LongCompareStringTest { public static void main(String[] args) { Long data = 0l; System.out.println(data.toString()); /*if ("0".equals(data)) { // 得到false1 System.out.println("true1"); } else { System.out.println("false1"); } if (0l == data) { // 得到true2 System.out.println("true2"); } else { System.out.println("false2"); }*/ Long t = null; // 抛异常================================================ if (0l == t) { System.out.println("00"); } } }
半年前的坑见<java条件表达式陷阱>
public class LongCompareStringTest { public static void main(String[] args) { Long data = 0l; System.out.println(data.toString()); /*if ("0".equals(data)) { // 得到false1 System.out.println("true1"); } else { System.out.println("false1"); } if (0l == data) { // 得到true2 System.out.println("true2"); } else { System.out.println("false2"); }*/ /*Long t = null; if (0l == t) { System.out.println("00"); }*/ boolean flag = true; Long t = null; // 抛异常================================================ Long tt = flag ? t : 0l; System.out.println(tt); } }
这段代码编译后再反编译如下:
import java.io.PrintStream; public class LongCompareStringTest { public static void main(String[] args) { Long data = Long.valueOf(0L); System.out.println(data.toString()); boolean flag = true; Long t = null; Long tt = Long.valueOf(flag ? t.longValue() : 0L); System.out.println(tt); }}
上一篇: JAVA并发控制的几种办法
推荐阅读