tryCoerce<T> method
dynamic
tryCoerce<T>(
- dynamic value
Implementation
dynamic tryCoerce<T>(dynamic value) {
if (value == null) {
return null;
}
if (value is T) {
return value as T;
}
if (value is double && T == int) {
var intVal = value.round();
return intVal as T;
}
if (value is int && T == double) {
var floatVal = value.toDouble();
return floatVal as T;
}
if (value is int && T == bool) {
var intVal = value;
return intVal == 0 ? false : true as T;
}
if (value is bool && T == int) {
bool boolVal = value;
return boolVal ? 1 : 0;
}
if (T == String) {
return value.toString() as T;
}
assert(
false,
'Failed to cast ' +
value.runtimeType.toString() +
' to ' +
value.toString());
return null;
}