Welcome, Anonymous Guest!  

News

Lead Page | Archive ]

Articles: Horrible Java

Published: May 12, 2012 - 10:40 AM

Las bellezas de Java:

Integer a = 3;
Integer b = 3;
Integer c = new Integer(3);
Integer d = new Integer(3);
Integer e = new Integer(2);
int f = 3;

if (a == b) /* Verdadero, funciona como esperado. */
  System.out.println("a == b");
if (b == c) /* ¡Falso, no funciona como esperado! */
  System.out.println("b == c");
if (c == d) /* ¡Falso, no funciona como esperado! */
  System.out.println("c == d");
if (e < d) /* Verdadero, funciona como esperado. */
  System.out.println("e < d");
if (d == f) /* Verdadero, funciona como esperado. */
  System.out.println("d == f");
if (a == f) /* Verdadero, funciona como esperado. */
  System.out.println("a == f");

Bueno, cualquiera puede argumentar que los primitivos son valores y los objetos referencias. ¿Pero por qué el comportamiento inconsistente entre < e == en ese sentido?

Así es como Java transforma el código arriba:

Integer a = Integer.valueOf(3);
Integer b = Integer.valueOf(3);
Integer c = new Integer(3);
Integer d = new Integer(3);
Integer e = new Integer(2);
int f = 3;

if (a == b)
  System.out.println("a == b");
if (b == c)
  System.out.println("b == c");
if (c == d)
  System.out.println("c == d");
if (e.intValue() < d.intValue())
  System.out.println("e < d");
if (d.intValue() == f)
  System.out.println("d == f");
if (a.intValue() == f)
  System.out.println("a == f");

Varias maneras de definir un entero, pésimo diseño, pésimo modelo de objetos, híbrido entre procedimental y objetos, sobre-abstracción (pedantismo), etc. ¡Qué lenguaje más inconsecuente! Esto es el producto de una buena máquina de mercadotecnia.

¡Lenguaje horrible!

 
Only logged in users are allowed to comment. register/log in

Visite mi empresa

Visite el sitio WEB de Solsoft en:

Solsoft de Costa Rica, Diseño Web, Pagina Web

Universidad de Costa Rica

Visite mi página en la Universidad de Costa Rica:

Braulio José Solano Rojas

Appsumo

Avisos

Noticias OpenIsis

Su navegador

  • User Agent : ccbot/2.0 (http://commoncrawl.org/faq/)
  • Browser :
  • Browser version : 0
  • OS : mpras
  • OS version : *nix