[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] Generic aspects
|
Ok, thank you for your fast reply. I hope it can be fixed soon, as it would
be useful for me.. then again.. you are probably already busy enough :)
Just for the sake of completeness, here is a (not so much) working test
case:
/* Error message: Type B does not meet the specification for type parameter
1 (A extends Base) in generic type GenericAspectA */
abstract aspect GenericAspectA<A extends Base> {}
abstract aspect GenericAspectB<B extends SubBase> extends GenericAspectA<B>
{}
/* Base extends SubBase extends SubSubBase */
class Base {}
class SubBase extends Base {}
class SubSubBase extends SubBase {}
/* Plain Java implementation */
class GenericA<A extends Base> {}
class GenericB<B extends SubBase> extends GenericA<B> {}
Good luck!
Mark
--------------------------------------------------
From: "Andy Clement" <andrew.clement@xxxxxxxxx>
Sent: Sunday, May 11, 2008 8:55 PM
To: <aspectj-users@xxxxxxxxxxx>
Subject: Re: [aspectj-users] Generic aspects
Hi Mark,
The docs only say (
http://www.eclipse.org/aspectj/doc/released/adk15notebook/generics-inAspectJ5.html
):
AspectJ 5 allows an abstract aspect to be declared as a generic type. Any
concrete aspect extending a generic abstract aspect must extend a
parameterized version of the abstract aspect.
That page of the doc also shows some examples of a hierarchy of
abstract generic aspects, although none of them alter the bounds in
the way your example does. So the fact that your code won't compile
is a bug that needs fixing.
cheers,
Andy.
2008/5/11 Mark Stobbe <markstobbe@xxxxxxxxx>:
Hello,
First of all, I know this is not possible, as it says on the manual
page..
but I was wondering why..
In plain Java you can redefine the upperbound of a type parameter, i.e.:
class AbstractComponent<C extends Component> {}
class AbstractWindow<W extends Window> extends AbstractComponent<W> {}
Now.. trying the same thing with aspects.. does not work:
abstract aspect AbstractComponentA<C extends Component> {}
abstract aspect AbstractWindowA<W extends Window> extends
AbstractComponentA<W> {}
So.. my question, why isn't this supported? And what would be the "best"
workaround?
Thanks in advance,
Mark
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users