Java Wrapper的比较
作者:互联网
public static void main(String[] args) {
System.out.println((Integer.valueOf("5000") <= Integer.valueOf("5000")));
System.out.println((Integer.valueOf("5000") == Integer.valueOf("5000")));
}
上面的代码分别打印true和false.这是可以理解的,但是当我们使用==时它为什么打印错误.
但是,当使用< =(小于或等于)时,为什么答案是真的?
解决方法:
当您使用< =,>比较包装类时,Java执行拆箱并在彼此之间比较实际的int(或double,long等)值.所以Integer.valueOf(“5000”)< = Integer.valueOf(“5000”)将像这个Integer.valueOf(“5000”)一样工作.intValue()< = Integer.valueOf(“5000”).intValue( )相当于5000 <= 5000.
标签:java,equality,primitive-types,wrapper,inequality 来源: https://codeday.me/bug/20190527/1162190.html