/*
* Class: demo_Demo16
* Method: newObject
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_demo_Demo16_newObject
(JNIEnv *env, jclass){
jclass cls = env->FindClass("java/lang/String");
jmethodID cID = env->GetMethodID(cls,"<init>","([B)V");
jbyteArray bArr = env->NewByteArray(60);
jbyte * bs = env->GetByteArrayElements(bArr,NULL);
const char *s = "万里长城,哈哈哈哈哈.";
jsize len = strlen(s);
memcpy(bs,s,len);
env->SetByteArrayRegion(bArr,0,len,bs);
env->ReleaseByteArrayElements(bArr,bs,0);
//不要提前delete否则输出是空的
//env->DeleteLocalRef(bArr);
jobject ret = env->NewObject(cls,cID,bArr);
//这里delete 数组仍然能输出字符串
//env->DeleteLocalRef(bArr);
//直接返回和加个ref效果差不多
//ret = env->NewLocalRef(ret);
//提前delete会有NullPointerException额。
//env->DeleteLocalRef(ret);
return static_cast<jstring>(ret);
//return static_cast<jstring>(ret);
}