jnat 0.11.2

A wrapper around the jni crate
Documentation
extern crate jnat;

use jnat::{
  jnat_macros::jnat,
  jni::{
    objects::{JClass, JString},
    JNIEnv,
  },
  Array, Env, ObjectArray,
};

jnat!(ObjectArray, method, (JNIEnv, JClass) -> ());

fn method(env: JNIEnv, _: JClass) {
  let mut env = Env::new(&env);

  let object_array = env.new_object_array(10, "java/lang/String");
  print_array(env, &object_array);
  print!("-");

  for i in 0..object_array.length() {
    object_array
      .set(i, env.new_string("test").unwrap())
      .unwrap();
  }

  object_array
    .set(0, env.new_string("hello").unwrap())
    .unwrap();

  print_array(env, &object_array);
  println!();
}

fn print_array<'a>(env: Env, arr: &ObjectArray<'a>) {
  for i in 0..arr.length() {
    match env.get_string(JString::from(arr.get(i).unwrap())) {
      Ok(s) => print!("{}", s),
      Err(_) => print!("null"),
    }
  }
}