Hi Leute!
Ich habe ein Problem mit AspectJ, und zwar möchte ich eine Methode zu einem Interface hinzufügen, und diese Methode mit einer Defaultimplementierung per Aspect versehen. Laut Eclipse HIlfe und Internetrecherche sollte das auch klappen. Ich sitze allerdings schon zwei Stunden vergeblich hier und wiederlege, frustriert, diese Behauptungen ... .
Hie mal meine Implementierungen:
Das Java Interface:
Der Aspekt der mir die Verknüpfung zu den Parents herstellt:
Ich muss auch sagen, dass das meine erste "Berührung" mit AspectJ ist. Ich bekomme beim Ausführen eine java.lang.AbstractMethodError Exception. Nach meiner Interpretation sieht das so aus, dass die Defaultimplementierung, siehe oben, nicht gefunden wird, oder falsch gemappt wird, oder wie immer man es bei Aspekten nennt
Für Hilfe wär ich dankbar!
Gruß
TOM
Ich habe ein Problem mit AspectJ, und zwar möchte ich eine Methode zu einem Interface hinzufügen, und diese Methode mit einer Defaultimplementierung per Aspect versehen. Laut Eclipse HIlfe und Internetrecherche sollte das auch klappen. Ich sitze allerdings schon zwei Stunden vergeblich hier und wiederlege, frustriert, diese Behauptungen ... .
Hie mal meine Implementierungen:
Das Java Interface:
Code:
public interface Identifiable {
public UUID getID();
static aspect Impl {
private UUID Identifiable.id;
public UUID Identifiable.getId() {
if (id == null)
id = UUID.randomUUID();
return id;
}
}
}
Der Aspekt der mir die Verknüpfung zu den Parents herstellt:
Code:
public aspect Identifier {
declare parents: (ModelElement) extends Identifiable;
}
Ich muss auch sagen, dass das meine erste "Berührung" mit AspectJ ist. Ich bekomme beim Ausführen eine java.lang.AbstractMethodError Exception. Nach meiner Interpretation sieht das so aus, dass die Defaultimplementierung, siehe oben, nicht gefunden wird, oder falsch gemappt wird, oder wie immer man es bei Aspekten nennt
Für Hilfe wär ich dankbar!
Gruß
TOM