JNA Java使数据可用于其他类

时间:2014-09-27 12:33:03

标签: java jna

我正在使用JNA从Java访问C ++ Shared Libary。我有一个类,里面有类似的东西"公共接口InterfaceLib扩展了Library"从这里我可以调用C ++方法,它的工作原理。问题是我希望在调用这些方法时生成的数据可用于其他类(我有Jframe并希望从一个到另一个)。如果我能理解的话,我的主要问题是我希望由该类的特定实例生成的数据调用JNA方法。对不起,如果我无法解释清楚。我到目前为止找到的唯一解决方案是有效的,但我认为最有效的方法是将一行JNA方法获取的数据总量解析为某些类成员,然后将这些成员解析为下一帧的构造函数等 更具体地说,我有一个按钮"运行系统",当我按下这个我运行我的C ++代码并为这次运行生成数据时,这个运行的这些数据的最有效方法是什么其他课程?

1 个答案:

答案 0 :(得分:1)

您的问题对我来说并不完全清楚,但我认为这些是关键点(第二点是您正在做的事情更重要):

  1. 调用本机代码时会产生很多开销。必须在JVM和主机之间转换和移动数据,这非常繁重。因此,您需要确保您的本机调用正在进行大量处理。例如,如果他们只是将两个数字加在一起,那么用Java编写它会更快,而不用担心本机调用。
  2. JNA图层为您完成翻译。您将从原生电话中获得结果,然后由您决定如何处理它。如果要将数据提供给其他类,则可以这样做,就像数据是由Java方法生成的一样。它通过JNA呼叫来的事实确实没有区别。将结果数据传递给另一个类的方法,或将其存储在类字段中并创建一个getter,或将其写入文件或任何您喜欢的方式。