Cho đến bây giờ, sự hiểu biết của tôi là ==
là quá tải của nhà điều hành cho .equals()
. Tuy nhiên, tôi vừa mới khám phá ra rằngNhà điều hành Groovy ==
new Integer(1) == new Long(1) // returns true
trong khi
new Integer(1).equals(new Long(1)) // returns false
vì vậy tôi đoán ==
là không chính xác một cách viết tắt cho .equals()
, vì vậy làm thế nào nó xác định sự bình đẳng?
Điều này tiếp tục cắn tôi khi sử dụng GORM, có ID cơ sở dữ liệu dài. Các yêu cầu từ JSON tạo ra các giá trị số nguyên cho hành vi như: groovy: 000> m = [1L: 'foo'] ===> [1: foo] groovy: 000> m.containsKey (1L) ===> true groovy: 000> m.containsKey (1) ===> sai –