继承接口

时间:2016-10-05 15:07:08

标签: java gwt interface

我有界面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();
    }

1 个答案:

答案 0 :(得分:0)

问题在于我的发电机使用:

for (JMethod method : targetClass.getMethods()) {
    MyAnnotation descriptor = method.getAnnotation(MyAnnotation.class);
        JParameter[] parameters = method.getParameters();
        //some code
}

因此,在getInheritableMethods()上更改getMethods()解决了这个问题。

很抱歉没有详细说明,我不确定在这种情况下重要的是什么!