#pragma once #include "jni.h" #include #include "armadillo" //变量名与java中sig对应 #define SIG_STRING "Ljava/lang/String;" #define SIG_LIST "Ljava/util/List;" #define SIG_DOUBLE "D" #define SIG_INT "I" #define SIG_LONG "J" #define SIG_SHORT "S" class CplusToJava { public: static jobjectArray GetjobjectArray(JNIEnv* env, jclass jcls, jobject jstruct, std::string var); //将QVector转换为jobjectArray static jobjectArray QVectorD2jobjectArray(QVector vec, JNIEnv* env); //将QVector转换为jobjectArray static jobjectArray QVectorQS2jobjectArray(QVector vec, JNIEnv* env); //将QVector转换为jobjectArray static jobjectArray QVectorL2jobjectArray(QVector vec, JNIEnv* env); //将QVector转换为jobjectArray static jobjectArray QVectorI2jobjectArray(QVector vec, JNIEnv* env); //将QVector转换为jobjectArray static jobjectArray QVectorS2jobjectArray(QVector vec, JNIEnv* env); //生成jobject static jobject Createjobject(JNIEnv* env, jint esize, jobjectArray array); //jobject转换为jobjectArray static jobjectArray jobject2jobjectArray(JNIEnv* env, jobject array); //将jobjectArray转换为QVector static QVector jobjectArray2QVectorD(JNIEnv* env, jobjectArray listValue); //将jstring转换为QString static QString jstring2QString(JNIEnv* env, jstring jstr); //将jobjectArray转换为vector static std::vector jobjectArray2vectorD(JNIEnv* env, jobjectArray listValue); //将vector转换为jobjectArray static jobjectArray VectorD2jobjectArray(std::vector vec, JNIEnv* env); //将uvec转为jobjectArray static jobjectArray uvec2jobjectArray(arma::uvec vec, JNIEnv* env); };