Tôi có một vấn đề rất lạ khi tôi đang cố gắng để so sánh 2 biến Long, họ luôn luôn hiển thị sai và tôi có thể chắc chắn họ có cùng giá trị số bằng cách gỡ lỗi trong Eclipse:Không phải là 2 biến dài bằng toán tử == để so sánh trong Java?
if (user.getId() == admin.getId()) {
return true; // Always enter here
} else {
return false;
}
Cả hai trên 2 giá trị trả về là loại đối tượng Dài, làm tôi bối rối. Và để xác minh rằng tôi đã viết một phương pháp chính như sau:
Long id1 = 123L;
Long id2 = 123L;
System.out.println(id1 == id2);
Nó in đúng.
Vì vậy, ai đó có thể cho tôi ý tưởng ?. Tôi đã làm việc trong Phát triển Java trong 3 năm nhưng không thể giải thích trường hợp này.
Tùy thuộc vào kích thước của Long. Các số nguyên và số nguyên nhỏ hơn được liên kết và là các đối tượng giống hệt nhau, nhưng các đối tượng dài hơn thì không, và đối với chúng, bạn sẽ cần phải sử dụng '.equals (...)' hoặc unbox chúng. –