--- /dev/null
+public class Bean {}
--- /dev/null
+public class BeanChild extends GenericParent<Bean> {
+ public BeanChild(Class<? extends Bean> c) {
+ super(c);
+ }
+ public static void main(String []argv) {
+ new BeanChild(null);
+ }
+}
+
--- /dev/null
+public aspect BeanHasInterface {
+ declare parents : Bean implements Interface;
+ declare parents : BeanChild extends InterfaceParent<Bean>;
+}
+
--- /dev/null
+public class GenericParent<T> {
+ public GenericParent(Class<? extends T> clazz) {}
+}
+
--- /dev/null
+public interface Interface {}
+
--- /dev/null
+public class InterfaceParent<T extends Interface> extends GenericParent<T> {
+ public InterfaceParent(Class<? extends T> c) {
+ super(c);
+ }
+}
+