java代码:public static int snd_Data(ArrayList data)
............
...........c++:mid = env->GetStaticMethodID( cls, "snd_Data", "(Ljava/util/ArrayList;)I");
if(mid !=0)
...............
..............已经找到这个函数,可是我该怎么调用呢? data参数该怎么传递?
............
...........c++:mid = env->GetStaticMethodID( cls, "snd_Data", "(Ljava/util/ArrayList;)I");
if(mid !=0)
...............
..............已经找到这个函数,可是我该怎么调用呢? data参数该怎么传递?
所以你在调用时 参数也应该是ArrayList类型或者是他的子类类型
data.add("你需要添加的数据");//add你需要添加的数据调用的话 因为你的snd_Date方法是static 所以直接用类名.方法名就能调用该方法。假如类名为A,那么就A.snd_Data(data)就好了。
if (status != JNI_ERR)
{
cls = env->FindClass("cn/gov/cwl/dtclient/DTService");
if (cls==0)
{
cout<<"c++: not found class!"<<endl;
jvm->DestroyJavaVM();.............
.............
.............
mid = env->GetStaticMethodID( cls, "GetData", "(Ljava/lang/String;)I");
if(mid !=0)
{
cout<<"c++: static method GetData found."<<endl;
square=-1;
jstring str;
str=(*env).NewStringUTF((const char*)snd);
ret = env->CallStaticIntMethod( cls, mid,str);
cout <<"c++: sendData return:"<< ret << std::endl;
我不知道在C++中该怎么处理java的arraylist类型
yourclass aclsss=new youclass();
aclsss.snd_Data(ArrayList data) ;就算是调用了。
data参数传递为题:int array[]={"name",age,"sex"};由对应的构造方法(构造器)传递。