我有界面A:
public interface A{
String someMethod();
}
使用GWT.create(A.class)我可以立即实现这个界面。
但是,如果我创建接口B();
public interface B extends A{
String someOtherMethod();
}
做GWT.create(B.class)我得到了B接口的实现,但没有实现A接口方法。
并获得编译错误:
[错误]第3行:类型B_impl必须实现抽象方法A.someMethod()
其他: 正如我后来发现的,可能是它与Annotations有关。
所以我有:
public interface annotationHelperClass{
}
有:
public final class annotationHelperClassGenerator{
//Some code
}
注释:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
String someParam();
}
所以界面A将是:
public interface A extends annotationHelperClass{
@MyAnnotation(someParam = "Some string")
String someMethod();
}
界面B:
public interface B extends A{
@MyAnnotation(someParam = "Some another string")
String someOtherMethod();
}
答案 0 :(得分:0)
问题在于我的发电机使用:
for (JMethod method : targetClass.getMethods()) {
MyAnnotation descriptor = method.getAnnotation(MyAnnotation.class);
JParameter[] parameters = method.getParameters();
//some code
}
因此,在getInheritableMethods()上更改getMethods()解决了这个问题。
很抱歉没有详细说明,我不确定在这种情况下重要的是什么!