gpt4 book ai didi

java - 通过 JNI 在 C 中创建匿名 java 类?

转载 作者:搜寻专家 更新时间:2023-11-01 02:25:22 25 4
gpt4 key购买 nike

给定一个 java 接口(interface),我想在 native C 函数中创建一个实现该接口(interface)的匿名 java 类的实例。我还希望这个实例有它自己的内部状态,对 java 隐藏。 JNI 可以实现这样的事情吗?

最佳答案

直接在 JNI 中实现匿名类看起来相当困难,尽管自从 JNI 函数 defineClass 以来也许是可能的。将原始字节流作为类定义。如果您能够生成适当的类文件字节代码,那么在返回实现您选择的接口(interface)的自定义生成的类时似乎没有障碍(除了困难之外)。

虽然更简单的解决方法可能是让 Java 代码生成适当的 Proxy带有委托(delegate)给您的 JNI 代码的处理程序的实例。代理能够实现任何接口(interface)并将所有操作实现延迟到处理程序,然后处理程序可以延迟到 JNI 进行实现。

关于java - 通过 JNI 在 C 中创建匿名 java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25025956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com