[教程]如果在 Delphi 中将一个Java传回的父接口转换成支持的子接口类型

好吧,我原本以为可以直接 as 实现,但现实告诉我想多了,所以这块我们需要额外的处理,基本的逻辑步骤是:

  1. 引用 Androidapi.JNI.JavaTypes 单元,以便我们引用 TJLang_Class。
  2. 使用 TJlang_Class.JavaClass.forName  获取子类的 Java 原生类型信息。
  3. 使用第二步返回的 JavaClass 的 cast 函数转换为新类型。
  4. 如果第三步成功,则调用目标类型的 Wrap 接口封装。

大概的一个Demo

实际上,通过 RTTI 应该和模板,应该可以写出一个相对通用的东西,但这个事情,暂时没时间研究,凑合看吧。

分享到:

0 条评论

沙发空缺中,还不快抢~