本文整理汇总了C++中JEnv::CallNonvirtualObjectMethodA方法的典型用法代码示例。如果您正苦于以下问题:C++ JEnv::CallNonvirtualObjectMethodA方法的具体用法?C++ JEnv::CallNonvirtualObjectMethodA怎么用?C++ JEnv::CallNonvirtualObjectMethodA使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JEnv
的用法示例。
在下文中一共展示了JEnv::CallNonvirtualObjectMethodA方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CallJavaMethod
//.........这里部分代码省略.........
}
args.GetReturnValue().Set((double) result); //TODO: handle float value here correctly.
break;
}
case MethodReturnType::Double:
{
jdouble result;
if (isStatic)
{
result = env.CallStaticDoubleMethodA(clazz, mid, javaArgs);
}
else if (isSuper)
{
result = env.CallNonvirtualDoubleMethodA(callerJavaObject, clazz, mid, javaArgs);
}
else
{
result = env.CallDoubleMethodA(callerJavaObject, mid, javaArgs);
}
args.GetReturnValue().Set(result);
break;
}
case MethodReturnType::String:
{
jobject result = nullptr;
bool exceptionOccurred;
if (isStatic)
{
result = env.CallStaticObjectMethodA(clazz, mid, javaArgs);
}
else if (isSuper)
{
result = env.CallNonvirtualObjectMethodA(callerJavaObject, clazz, mid, javaArgs);
}
else
{
result = env.CallObjectMethodA(callerJavaObject, mid, javaArgs);
}
if (result != nullptr)
{
auto objectResult = ArgConverter::jstringToV8String(static_cast<jstring>(result));
args.GetReturnValue().Set(objectResult);
env.DeleteLocalRef(result);
}
else
{
args.GetReturnValue().Set(Null(isolate));
}
break;
}
case MethodReturnType::Object:
{
jobject result = nullptr;
bool exceptionOccurred;
if (isStatic)
{
result = env.CallStaticObjectMethodA(clazz, mid, javaArgs);
}
else if (isSuper)
{
result = env.CallNonvirtualObjectMethodA(callerJavaObject, clazz, mid, javaArgs);
}
示例2: CallJavaMethod
//.........这里部分代码省略.........
jdouble result;
if (isStatic)
{
result = env.CallStaticDoubleMethodA(clazz, mid, javaArgs);
}
else if (isSuper)
{
result = env.CallNonvirtualDoubleMethodA(callerJavaObject, clazz, mid, javaArgs);
}
else
{
result = env.CallDoubleMethodA(callerJavaObject, mid, javaArgs);
}
args.GetReturnValue().Set(result);
break;
}
case '[':
case 'L':
{
bool isString = returnType == "Ljava/lang/String;";
jobject result = nullptr;
bool exceptionOccurred;
if (isString)
{
if (isStatic)
{
result = env.CallStaticObjectMethodA(clazz, mid, javaArgs);
}
else if (isSuper)
{
result = env.CallNonvirtualObjectMethodA(callerJavaObject, clazz, mid, javaArgs);
}
else
{
result = env.CallObjectMethodA(callerJavaObject, mid, javaArgs);
}
exceptionOccurred = env.ExceptionCheck() == JNI_TRUE;
if (!exceptionOccurred)
{
auto resultV8String = ArgConverter::jstringToV8String((jstring) result);
args.GetReturnValue().Set(resultV8String);
}
}
else
{
if (isStatic)
{
result = env.CallStaticObjectMethodA(clazz, mid, javaArgs);
}
else if (isSuper)
{
result = env.CallNonvirtualObjectMethodA(callerJavaObject, clazz, mid, javaArgs);
}
else
{
result = env.CallObjectMethodA(callerJavaObject, mid, javaArgs);
}
exceptionOccurred = env.ExceptionCheck() == JNI_TRUE;
if (!exceptionOccurred)