diff --git a/java_src/me/ehlxr/HelloWorld.java b/java_src/me/ehlxr/HelloWorld.java index c0e532b..c2f91f6 100644 --- a/java_src/me/ehlxr/HelloWorld.java +++ b/java_src/me/ehlxr/HelloWorld.java @@ -39,16 +39,14 @@ class HelloWorld { HelloWorld hw = new HelloWorld(); - // hw.setNameStr("fsdfs"); + hw.setNameStr("fsdfs"); System.out.println(HelloWorld.fetchNameStr(hw)); } private String nameStr; public void setNameStr(String nameStr){ - System.out.println(nameStr); - - // this.nameStr=nameStr; + this.nameStr=nameStr; } public String getNameStr(){ diff --git a/mylib/src/lib.rs b/mylib/src/lib.rs index 6fdec02..08a4ab9 100644 --- a/mylib/src/lib.rs +++ b/mylib/src/lib.rs @@ -9,15 +9,19 @@ pub extern "system" fn Java_me_ehlxr_HelloWorld_fetchNameStr( _class: JClass, input: JObject, ) -> jstring { - if let JValue::Object(rt) = env + let out_str = if let JValue::Object(result) = env .call_method(input, "getNameStr", "()Ljava/lang/String;", &[]) .unwrap() { - println!("return {:?}", rt) + let jstr = env.get_string(JString::from(result)).unwrap(); + // println!("call getNameStr result: {}", String::from(jstr)); + format!("Hello, {}! from Rust..", String::from(jstr)) + } else { + format!("Hello! from Rust..") }; let output = env - .new_string(format!("Hello, {:?}! from Rust..", input)) + .new_string(out_str) .expect("Couldn't create java string!"); output.into_inner() }