Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] Problem: ITD on generic classes via marker interface fails for implementing abstract method

Hi all,

please consider the following working example:


public class Foo<A> implements Marker<A>
{ }

public interface Marker<A>
{ }

public aspect AspectDoWhatEver
{
    public void Marker<A>.doWhatEver()  { // do nothing
    }
}


In that case the 'doWhatEver()' method got properly weaved into class
Foo<A>.
But when I slightly change the example by introducing a base class FooBase:


public class Foo<A> extends FooBase implements Marker<A>
{ }

abstract public class FooBase
{
    abstract public void doWhatEver();
}


there comes only the error message 'The type Foo<A> must implement the
inherited abstract method FooBase.doWhatEver()' !
But this should work or have I misunderstood something?

And it does works if I remove the type from class Foo:

public class Foo extends FooBase implements Marker
{ }

But

public class Foo<A> extends FooBase implements Marker
{ }

again does not work!

Unfortunately, I believe I need this possibility to realize mixins. :-(
So I would be happy for any answer why the above is not working.

Thanks,
Michael Esser



Back to the top