viernes, 11 de junio de 2010

¿SringTokenizer deprecated?


Hoy, con muchos años de retraso, me he enterado de que la clase StringTokenizer ha sido deprecada. Bueno, técnicamente no, porque en el API no aparece como tal, pero desde Java 1.4 se incluye este claro mensaje en la descripción de la clase.

"StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead."

Que viene a decir que no se recomienda el uso de la clase porque hay un alternativa mejor: el método split de la clase String. En la propia descripción de la clase hay un ejemplo de uso de este nuevo método, que no tiene mayor complejidad.

Lo que no entiendo realmente es por qué razón no se marca la clase como Deprecated si, atendiendo a ese texto, lo está a todos los efectos. Llevo años utilizando la clase sin saber que su uso no está recomendado, dado que en ningún momento ha habido un compilador capaz de avisarme de ello. Además, es lógico pensar que la mayoría de la gente que entra a consultar el API no se pare a leer todo el rollo que nos suelta la gente de Sun, y se vaya directamente a ver la definición de los métodos, que es lo que normalmente uno necesita.

Lógicamente me surgen dudas, ¿cuántas clases habrá en el vasto API de Java con advertencias similares a esta? ¿Por qué no las hieren de muerte? ¿Debería existir otro estado para clases "no recomendadas"? ¿En qué se diferencian de las deprecadas?

Seguiremos investigando...

No hay comentarios:

Publicar un comentario

Cualquier aportación será bienvenida