castTo<T extends JObject> method
Casts this object to another type
.
If releaseOriginal
is true
, the casted object will be released.
Implementation
T castTo<T extends JObject>(
JObjType<T> type, {
bool releaseOriginal = false,
}) {
assert(
Jni.env.IsInstanceOf(reference.pointer, type.jClass.reference.pointer),
'The object must be of type "${type.signature}".',
);
if (releaseOriginal) {
final ret = type.fromReference(JGlobalReference(reference.pointer));
reference.setAsReleased();
return ret;
}
final newRef = JGlobalReference(Jni.env.NewGlobalRef(reference.pointer));
return type.fromReference(newRef);
}