JArray<E> constructor
Creates a JArray of the given length from the given elementType
.
The length
must be a non-negative integer.
Implementation
factory JArray(JType<E> elementType, int length) {
const primitiveCallTypes = {
'B': JniCallType.byteType,
'Z': JniCallType.booleanType,
'C': JniCallType.charType,
'S': JniCallType.shortType,
'I': JniCallType.intType,
'J': JniCallType.longType,
'F': JniCallType.floatType,
'D': JniCallType.doubleType,
};
if (!primitiveCallTypes.containsKey(elementType.signature) &&
elementType is JObjType) {
final clazz = (elementType as JObjType).jClass;
final array = JArray<E>.fromReference(
elementType,
JGlobalReference(
Jni.accessors
.newObjectArray(length, clazz.reference.pointer, nullptr)
.objectPointer,
),
);
clazz.release();
return array;
}
return JArray.fromReference(
elementType,
JGlobalReference(
Jni.accessors
.newPrimitiveArray(
length, primitiveCallTypes[elementType.signature]!)
.objectPointer,
),
);
}