程序员将所有要传递给构造函数的参数放在紧随methodID参数之后的jvalues args数组中。NewObjectA()接受这个数组中的参数,然后将它们传递给程序员希望调用的Java方法。
在我的例子中,构造函数需要传递给它两个java字符串。因此,我尝试了以下几点:
jclass jcls_File = env->FindClass("java/io/File");
jmethodID File_constructor = env->GetMethodID(jcls_File, "<init>","(Ljava/lang/String;Ljava/lang/String;)V");
jstring home = ctojstring(env,"/home/workspace");
jstring filename = ctojstring(env,"mydatafile");
jvalue FileLocationParams[] = {home,filename}; // COMPILE ERROR HERE.
jobject MyDataFile = env->NewObjectA(jcls_File, File_constructor,FileLocationParams);
其中ctojstring只是以下函数:
jstring ctojstring(JNIEnv *env,std::string mystring){
return env->NewStringUTF(mystring.c_str());
}
jvalue
是union类型。
并声明如下:
typedef union jvalue {
jboolean z;
jbyte b;
jchar c;
jshort s;
jint i;
jlong j;
jfloat f;
jdouble d;
jobject l;
} jvalue;
如果要将jstring
分配给jvalue
,可以按以下方式进行。
jvalue FileLocationParams[2];
FileLocationParams[0].l = home;
FileLocationParams[1].l = filename;
jvalue FileLocationParams[] = {home,filename}; // COMPILE ERROR HERE.
创建一个函数,但它给出的错误数据库表如下所示
问题内容: 在Python中,如何将列表转换为? 我需要知道,因为功能 希望将几个time_series对象作为传递,而我有一个timeseries对象列表。 问题答案: 您可以在迭代器之前使用运算符,以在函数调用中对其进行扩展。例如: (请注意之前) 从python文档中: 如果语法* expression出现在函数调用中,则表达式必须求值为可迭代。来自此迭代器的元素被视为附加的位置参数。如果存
我有一个gridview和一个放入列表,一个有函数,另一个没有函数,所以只有一个标记。尽管我的标记中有,但似乎无法解决这个问题。 我试过其他人提到的清理和重建,但对我不起作用,错误还在显现。 创建control-asp时出错:dropdownlist ;id=“dropdownlist1” runat=“server”缺少的结束标记。 创建控件时出错-ASP:GridView ;id=“GridV
我想创建一个Azure函数,它接受传递给它的JSON主体,并将该文档插入到Azure COSMOSDB实例中。 并按如下方式实现该函数: 在门户中,我放入了一个简单的示例文档:
我使用DropBox API在Xamarin中实现Dropbox。表单(NET标准)。我上传文件成功,但下载时收到此错误 Dropbox。Api。BadInputException:调用API函数“文件/下载”时出错:错误的HTTP“Content-Type”标头:“Application/x-www-form-urlencoded”。期待“text/平原”、“text/平原;charset=ut
我已经尝试了很多东西来部署这个功能,安装和卸载节点多次和更多的尝试,但它仍然给我同样的错误。我试图实现的是使用agora-Access令牌包生成令牌使用Firebase函数代码是: 错误是: ===部署到'xxxx'... 我部署函数运行命令: npm--prefix"$RESOURCE_DIR"run lint 皮棉。 函数:完成预部署脚本的运行。i函数:确保启用所需的APIcloudfunct