as<T extends JObject?> method
Casts this object to another type.
If releaseOriginal is true, the casted object will be released.
Throws CastError if this object is not an instance of type.
Implementation
T as<T extends JObject?>(
JObjType<T> type, {
bool releaseOriginal = false,
}) {
if (!isA(type)) {
throw CastError('not a subtype of "${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);
}