如何在swig生成的代码中添加显式的@Override?

时间:2017-10-02 08:32:08

标签: java swig

我想在以下swig代码段中添加一个明确的@Override

%extend gdcm::Tag {
  int hashCode() {
    return self->MyCxxHashCode();
  }
};

现在生成的java代码不包含关键字:

package gdcm;
public class Tag {
[...]
  public int hashCode() {
    return gdcmJNI.Tag_hashCode(swigCPtr, this);
  }
}

虽然我更喜欢:

package gdcm;
public class Tag {
[...]
  @Override
  public int hashCode() {
    return gdcmJNI.Tag_hashCode(swigCPtr, this);
  }
}

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用%javamethodmodifiers,这通常只是“公开”,但可以通过选择来实现您想要的非常简单:

%module test

%inline %{
struct Foo {};
%}

%javamethodmodifiers Foo::hashCode %{@Override
  public%};

%extend Foo {
  int hashCode() {
    return 0;
  }
};