获取Java中的String转成c++的string
string Vibrator::getWord()
{
JniMethodInfo t;
if (JniHelper::getStaticMethodInfo(t, CLASS_NAME, "getWord", "()Ljava/lang/String;"))
{
jstring str=(jstring)t.env->CallStaticObjectMethod(t.classID, t.methodID);
t.env->DeleteLocalRef(t.classID);
return JniHelper::jstring2string(str);
}
}
获取Java中的object转成c++的object
package org.cocos2dx.cpp;
/**
* Created by aspros on 16/4/29.
*/
public class WordBean
{
private String lemma;
private String trans;
private String phonetic;
public String getLemma()
{
return lemma;
}
public void setLemma(String lemma)
{
this.lemma = lemma;
}
public String getTrans()
{
return trans;
}
public void setTrans(String trans)
{
this.trans = trans;
}
public String getPhonetic()
{
return phonetic;
}
public void setPhonetic(String phonetic)
{
this.phonetic = phonetic;
}
}
//
// Created by 达也 on 16/4/29.
//
#ifndef PROJ_ANDROID_STUDIO_WORD_H
#define PROJ_ANDROID_STUDIO_WORD_H
#include <cstring>
using namespace std;
class Word {
public:
string lemma,trans,phonetic;
};
#endif //PROJ_ANDROID_STUDIO_WORD_H
Word Vibrator::getWord()
{
JniMethodInfo t;
if (JniHelper::getStaticMethodInfo(t, CLASS_NAME, "getWord", "()Lorg/cocos2dx/cpp/WordBean;"))
{
jobject jobj=t.env->CallStaticObjectMethod(t.classID, t.methodID);
jclass jcl=t.env->FindClass("org/cocos2dx/cpp/WordBean");
jmethodID lemmaId = t.env->GetMethodID(jcl, "getLemma", "()Ljava/lang/String;");
jmethodID transId = t.env->GetMethodID(jcl, "getTrans", "()Ljava/lang/String;");
jmethodID phoId = t.env->GetMethodID(jcl, "getPhonetic", "()Ljava/lang/String;");
jstring lemma=(jstring)t.env->CallObjectMethod(jobj,lemmaId);
jstring trans=(jstring)t.env->CallObjectMethod(jobj,transId);
jstring pho=(jstring)t.env->CallObjectMethod(jobj,phoId);
Word word;
word.lemma=JniHelper::jstring2string(lemma);
word.trans=JniHelper::jstring2string(trans);
word.phonetic=JniHelper::jstring2string(pho);
t.env->DeleteLocalRef(t.classID);
return word;
}
}