Programación General > Java

 Instruccion Switch

<< < (2/2)

shadow_rev:

--- Cita de: "JuanK" --- Es cierto en java no puedes usar switch sino tan solo en tipos primitivos, en C# si puedes usar switch con string porque entre otras cosas en C# string se considera nu tipo primitivo.

Una solucion, que no se que tan factible y util sea de implementar en Java, es que crees una nueva clase que herede de String y en esa clase puedes crear una sobrecarga del operador == y del operador != ( y las demas cosas que java requiera para eso), una vez hecho eso empiezas a trabajar con tu clase nueva y ptrata de usarla en un switch como se usaria normalmente o bien solo has comparaciones con if usando == y != . :scream:
--- Fin de la cita ---
!¿ Eso si se puede ?!

Que yo sepa, java no soporta la sobrecarga de operadores. Solucionarías muchos problemas si me explicas como hacerlo (p.e la comparación de strings)

JuanK:

--- Cita de: "JuanK" --- Una solucionó, que no se que tan factible y util sea de implementar en Java...
--- Fin de la cita ---

...

Seria triste que no se pudiera, cuando usaba java ( 5+ años atras ) no logré ahondar en esas características pero seria el colmo que hoy en dia aun no las tenga.

silverfox:
Hola...


Por desgracia, Java no soporta (ni creo que lo haga en un futuro cercano) la sobrecarga de operadores.

Sin embargo, para comparaciones de objetos, tiene un 'truquillo' interesante, que puede ser utilizado en estos casos: El interfaz Comparable.

Este interfaz consta del método compareTo(Object) para comparar dos objetos cualesquiera (A partir de la versión 1.5.0, utiliza los templates Java para evitar comparaciones entre objetos diferentes).

De todas formas, puedes probar un truco que quizá te sirva, aunque puede que no en todos los casos de cadenas, es posible que sí te valga en el tuyo en particular.

Echa un vistazo al método int hashCode() de la clase Object (por tanto, heredado por todas sus subclases).


Un saludo.


Silverfox.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa