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);
}