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

通过JNI在C中创建匿名java类?,java,java-native-interface,Java,Java Native Interface,给定一个java接口,我想在本机C函数中创建一个实现该接口的匿名java类的实例。我还希望这个实例有自己的内部状态,对java隐藏。在JNI中可能有这样的事情吗?在JNI中直接实现匿名类看起来相当困难,尽管可能是因为JNI函数将原始字节流作为类定义。如果您能够生成适当的类文件字节码,那么在返回实现您选择的接口的自定义生成的类时,似乎没有任何障碍(困难除外) 尽管一个更简单的解决方法可能是让Java代码生成一个适当的实例,该实例接受一个委托给JNI代码的处理程序。代理能够实现任何接口,并将所有操作

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

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


尽管一个更简单的解决方法可能是让Java代码生成一个适当的实例,该实例接受一个委托给JNI代码的处理程序。代理能够实现任何接口,并将所有操作实现推迟到处理程序,然后处理程序可以推迟到JNI进行实现。

+1用于第二段;第一个没有满足“隐藏Java”的要求。谢谢,代理更有意义。我想我可以把里面的东西塞进字节缓冲区什么的。为什么?您是否认为这会以一种无法破解的方式混淆您的代码?不会的。@kdgregory我想,尽可能多地隐藏内部内容似乎是一种好的做法,但主要是我对JNI能做什么感到好奇。