Estoy escribiendo (bueno, completando) una "extensión" de Java que ayudará a la programación de roles.
Traduzco mi código al código de Java con javacc. Mis compiladores agregan a cada clase declarada algún código. He aquí un ejemplo para ser más claro:Java: extensión de clase de objeto
MyClass extends String implements ObjectWithRoles { //implements... is added
/*Added by me */
public setRole(...){...}
public ...
/*Ends of stuff added*/
...//myClass stuff
}
Se añade Implementa .. y los métodos necesarios para cada clase SOLO se declara. Muy duro, ¿no?
Será mejor si escribo mis métodos en una clase y toda la clase amplía esa ... pero ... si la clase ya se extiende otra clase (como en el ejemplo)?
No quiero crear una especie de envoltorio que administre roles porque no quiero que el programador tenga que saber mucho más que Java, pocas palabras reservadas nuevas y su uso.
Mi idea era extender java.lang.Object ... pero no se puede. (¿no?)
¿Otras ideas?
Soy nuevo aquí, pero sigo este sitio así que gracias por leer y todas las respuestas que das. (Pido disculpas por el inglés, soy italiano)
No puede extender 'String'. Es una clase final, no puedes subclasificarla: http://java.sun.com/javase/6/docs/api/java/lang/String.html –
"Mi idea era extender java.lang. Objeto ... pero no se puede. (¿Verdad?) " Hmm, yo diría que cualquier Clase donde no exista objeto de subclases por defecto. –
@James P. Creo que lo que Fabio quería decir es reemplazar a Object con su propia versión actualizada. Y eso se puede hacer, crear una clase base genérica para su propia aplicación y extender todo desde allí. Pero no querrás agregar eso se extiende automáticamente a todo :) – extraneon