Hi -
I'm running into a perplexing issue with AJC and I'm hoping someone else has seen this before.
The target of my aspect is the class AlreadyImplementsA, we are simply wanting to throw the 'implements A' onto this class. AlreadyImplementsA class already does indeed implement every method defined by the interface A but for whatever reason, AJC complains that AlreadyImplementsA does Not implement A because of the method
T setInputs(List<I> inputs);
I can have a whole multitude of other methods defined on the interface and AJC does not complain, it seems to have a problem with the fact that the argument to the method on the interface is an Interface (List) with a generic I. As I have other AJC issues where the method argument is a Map of a generic type and AJC blows up on it as well.
My aspect below
public aspect BindInterfaceA {
declare parents: AlreadyImplementsA implements A<ConcreteTImpl, ConcreteIImpl>;
}
My interface A referenced above has an interface method defined as shown below
public interface A<T extends BaseT, I extends BaseI> {
T setInputs(List<I> inputs);
}
The 'exact' AJC error message is
AlreadyImplementsA must implement the inherited abstract method A<ConcreteTImpl, ConcreteIImpl>.setInputs(Pjava/util/list<LConcreteIImpl;>;)
I am almost positive the problem all boils down to an interface with a generic being passed as a argument to the method (List<I> inputs) in our case, which is causing AJC problems.
Thanks for any advice you might have on getting past this.
Jason