Long,String类型的两个值进行比较,注意点!!!

时间:2022-09-04 07:21:20
一:
. Long 类型指的是   java.util.Lang 对象,而不是基本类型 long  (注意大小写)
Java中如果使用 == 双等于比较对象,等于比较的是两个对象的内存地址,也就是比较两个对象是否是同一个对象
如果比较两个Long对象值是否相等,则不可以使用双等号进行比较,可以采用如下方式:
1. 使用 equals 方法
Long a = new Long(3);
Long b = new Long(3);
System.out.println(a.equals(b));
2. 使用 Long 类型中的 longValue() 方法进行比较,如 Long a = new Long(3);
Long b = new Long(3);
System.out.println(a.longValue()==b.longValue());
二:
String类型的也是如此:  ==  只是判断两个字符串的内存地址是否相等。用equals方法才是判断值是否相等。
代码如下:
 
if("1".equals(surchargeCList.get(i).getPaymentMethod()) && surchargeCList.get(i).getIsOther() == 0) { treeSet.add(surchargeCList.get(i).getCurrency()); } “1”要写在前面。防止报空指针异常。因为surchargeCList.get(i).getPaymentMethod()可能为null,一个空对象去调equals方法就会报空指针异常。