欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记两次踩到的坑-Long类型赋值与比较

程序员文章站 2022-07-12 20:15:28
...
通过对象属性获取Long类型数据t,与常量Long类型比较时,

应判断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);
  }
}
相关标签: exceptions