我有一个Java类可以被子类化以添加一个额外的字段.有一个相应的C++ JNI方法将与该字段进行交互.但是,我希望JNI代码同时处理基类和子类,这意味着它必须检测字段是否存在.
我的(简化)JNI代码如下所示:
fid = j.GetFieldID( jc, UTF8_SECPARM, SIG_SECPARM );
if ( fid == 0 ) return;
... continue with fid ...
Run Code Online (Sandbox Code Playgroud)
尽管GetFieldID()方法返回NULL,但应用程序在处理的某个进一步的点处获得异常,这看起来与此代码无关.然而,它在某种程度上是相关的,因为如果我只是在GetFieldID()方法之前返回,则没有异常.
如何从JNI代码中可靠地测试对象中字段或方法的存在?