Que buen lenguaje. Son realmente admirables las decisiones de diseño del lenguaje java, que opta por ir en contra de lo que hacen casi todos los lenguajes modernos, y no permite comparar objetos con ==. Despues de todo, quien necesita operator overloading? eso es muy "confuso"... siempre es preferible la inconsistencia y la idiotez:
- para comparar "primitivos" (lo que sea que significa eso) se usa ==
- para comparar "objetos" se usa .equals()
- para sumar 2 enteros se usa +, siempre que no esten boxeados en Integer, porque los generics de java estan re bien diseñados, entonces no se puede hacer un List<int>, ni ningun generic sobre tipos primitivos, entonces se necesita boxear y desperdiciar memoria, que total es gratis (*), y si no me crees preguntale a los que hicieron el minecraft...
- para sumar 2 valores numericos de tipo BigDecimal se usa .add()
...
Que buen lenguaje, los abogados y burocratas de oracle deben estar orgullosos.
(*) - Lo que no es gratis es la salud del pobre diablo que tiene que codear en java, pero bueno...