Piszę (dobrze, uzupełniając) "rozszerzenie" Javy, które pomoże w programowaniu roli.
Tłumaczę mój kod na kod Java za pomocą javacc. Moje kompilatory dodają do każdej zadeklarowanej klasy jakiś kod. Oto przykład, aby być bardziej precyzyjne:Java: extending Klasa obiektu
MyClass extends String implements ObjectWithRoles { //implements... is added
/*Added by me */
public setRole(...){...}
public ...
/*Ends of stuff added*/
...//myClass stuff
}
Dodaje Implements .. i metod niezbędnych do każdej pojedynczej klasy deklarowania. Całkiem szorstki, prawda?
Będzie lepiej, jeśli napiszę moje metody w jednej klasie i cała klasa rozszerzy to .. ale .. jeśli klasa już rozszerza inną klasę (tak jak przykład)?
Nie chcę tworzyć rodzaju opakowania, które zarządza rolami, ponieważ nie chcę, aby programista wiedział o wiele więcej niż Java, kilka nowych zastrzeżonych słów i ich wykorzystanie.
Mój pomysł polegał na przedłużeniu java.lang.Object .. ale nie można. (prawda?)
Inne pomysły?
Jestem tu nowy, ale śledzę tę stronę, więc dziękuję za przeczytanie i wszystkie odpowiedzi, jakie dajecie! (Przepraszam za angielski, jestem włoski)
Nie można rozszerzyć 'String'. Jest to ostatnia klasa, nie można jej podklasować: http://java.sun.com/javase/6/docs/api/java/lang/String.html –
"Mój pomysł polegał na przedłużeniu java.lang. Obiekt .. ale nie możesz. (Prawda?) " Hmm, powiedziałbym, że każda klasa, w której nie ma podklas rozszerzeń Obiekt domyślnie. –
@James P. Myślę, że Fabio miał na myśli, że zastąpił obiekt swoją własną zaktualizowaną wersją. I to można zrobić, zrobić ogólną klasę bazową dla własnej aplikacji i rozszerzyć wszystko stamtąd. Ale nie chcesz dodawać, że rozszerza się automatycznie na wszystko :) – extraneon