Community
Participate
Working Groups
In the following case, the method (which is inherited from super-class/super-interfact and has generic type parameter(s)) is not recognized by the compiler or is not inherited from its super-class/super-interfact at all. This is an issue for AspectJ 1.6.4 and 1.6.5, but not for 1.6.2 and 1.6.3. == == == [INFO] Compiler errors : error at public class Target ^^^^^ \Tests\itd-generic-type\src\main\java\aspectj\test\Target.java:3:0::0 The type aspectj.test.Target must implement the inherited abstract method aspectj.test.Accessor.set(Ljava/lang/String;Ljava/lang/Object;) see also: \Tests\itd-generic-type\src\main\java\aspectj\test\Accessor.java:7::0 see also: \Tests\itd-generic-type\src\main\java\aspectj\test\TargetEnhancer.aj:5::0 == == == public interface Accessor<V> { V get(String key); void set(String key, V value); } public class AccessorImpl<V> implements Accessor<V> { public V get(String key) { System.out.println("Calling get(..)"); return null; } public void set(String key, V value) { System.out.println("Calling set(..)"); } } public class Target { } public aspect TargetEnhancer { declare parents: Target extends AccessorImpl<String>; }
the error was produced by some code that didn't realise a bridge method would satisfy the requirement. test and fix committed. thanks for the testcase