Fino ad ora, la mia comprensione era che ==
è un sovraccarico dell'operatore per .equals()
. Tuttavia, di recente ho scoperto cheGroovy == operatore
new Integer(1) == new Long(1) // returns true
mentre
new Integer(1).equals(new Long(1)) // returns false
quindi credo ==
non è esattamente una scorciatoia per .equals()
, così come fa a determinare l'uguaglianza?
Questo continua a mordermi quando si utilizza GORM, che ha ID database lunghi. Richieste da valori interi generati da JSON che producono un comportamento come: groovy: 000> m = [1L: 'foo'] ===> [1: foo] groovy: 000> m.containsKey (1L) ===> true groovy: 000> m.containsKey (1) ===> false –