我想在以下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);
  }
}

最佳答案

最简单的方法是使用%javamethodmodifiers,它通常只是“公开”的,但是可以很简单地选择实现以下目标:

%module test

%inline %{
struct Foo {};
%}

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

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

关于java - 如何在Swig生成的代码中添加显式@Override?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46522039/

10-13 05:04