使用Delphi中的JNI访问java构建器模式

时间:2014-11-17 07:34:25

标签: java delphi java-native-interface

我目前正在通过JNI在delphi中实现jar文件。 这是我的问题:我无法通过java实现的构建器创建对象。

这里是java代码:

public class MyObject {
   // .. code
   public static class Builder {
       protected MyObject instance;

       public Builder() {
          this.instance = new MyObject
       }

       public Builder withString(String s) {
          instance.string = s;
          return this;
       }

       public MyObject Build() {
          // check object values
          return instance;
       }
   }
}

如您所见,构建器类是对象的子类。

在delphi中,我使用此代码访问构建器:

jClass := JNIEnv.FindClass('package/MyObject$Builder');
jMid := JNIEnv.GetMethodID(jClass, '<init>', '()V');
jObj := JNIEnv.NewObjectV(jClass, jMid, '');

_jMid := JNIEnv.GetMethodID(jClass, 'withString', '(Ljava/lang/String;)package/MyObject$Builder;');
_jObj := JNIEnv.CallObjectMethodV(jObj, _jMid, 'string');

但我似乎无法使其正常工作,我总是遇到访问冲突。

提前致谢!

0 个答案:

没有答案