long a = 1111;
Long b = 1113;
if(a == b)
{
System.out.println("Equals");
}else{
System.out.println("not equals");
}
上面的代码在控制台中输出“等于”,这是错误的答案。我的问题是如何比较长变量值等于Long变量值。请尽快重播我。
谢谢你
答案 0 :(得分:28)
首先,您的代码未编译。线 长b = 1113;
错了。你必须说
Long b = 1113L;
第二,当我修复了这个编译问题时,代码打印出“不等于”。
答案 1 :(得分:10)
按预期工作,
尝试检查IdeOneDemo
public static void main(String[] args) {
long a = 1111;
Long b = 1113l;
if (a == b) {
System.out.println("Equals");
} else {
System.out.println("not equals");
}
}
打印
not equals
对我来说
使用compareTo()
来比较Long,==
在所有情况下都不起作用,只要缓存该值
答案 2 :(得分:7)
long a = 1111;
Long b = new Long(1113);
System.out.println(b.equals(a) ? "equal" : "different");
System.out.println((long) b == a ? "equal" : "different");
答案 3 :(得分:3)
一方面,Long是一个对象,另一方面long是原始类型。为了比较它们,您可以从Long类型中获取原始类型:
public static void main(String[] args) {
long a = 1111;
Long b = 1113;
if ((b!=null)&&
(a == b.longValue()))
{
System.out.println("Equals");
}
else
{
System.out.println("not equals");
}
}
答案 4 :(得分:1)
从Java 7开始,您可以使用java.util.Objects.equals(Object a, Object b):
这些实用程序包括null-safe或null-tolerant方法
Long id1 = null;
Long id2 = 0l;
Objects.equals(id1, id2));
答案 5 :(得分:1)
我将分享自Java 7以来我该怎么做 -
Long first = 12345L, second = 123L;
System.out.println(first.equals(second));
输出返回:false
和匹配的第二个例子是 -
Long first = 12345L, second = 12345L;
System.out.println(first.equals(second));
输出返回:true
所以,我相信equals方法可以比较Object的值,希望它对你有所帮助,谢谢。
答案 6 :(得分:0)
public static void main(String[] args) {
long a = 1111;
Long b = 1113L;
if(a == b.longValue())
{
System.out.println("Equals");
}else{
System.out.println("not equals");
}
}
or:
public static void main(String[] args) {
long a = 1111;
Long b = 1113L;
if(a == b)
{
System.out.println("Equals");
}else{
System.out.println("not equals");
}
}