コード例 #1
0
jni::local_ref<NativeArray::jhybridobject>
createReadableNativeArrayWithContents(folly::dynamic array) {
  if (array.isNull()) {
    return jni::local_ref<NativeArray::jhybridobject>();
  }

  if (!array.isArray()) {
    jni::throwNewJavaException("com/facebook/react/bridge/UnexpectedNativeTypeException",
                               "expected Array, got a %s", array.typeName());
  }

  static auto readableNativeArrayClass =
    jni::findClassStatic("com/facebook/react/bridge/ReadableNativeArray");
  static auto readableNativeArrayCtor =
    readableNativeArrayClass->getConstructor<NativeArray::jhybridobject()>();

  auto jnewArray = readableNativeArrayClass->newObject(readableNativeArrayCtor);
  jni::cthis(jnewArray)->array = std::move(array);
  return jnewArray;
}