Проблема:
Возможно ли динамическое приведение к типу?
Например, возможно ли это, используя зеркала:
var reflectee = im.getField(simpleName).reflectee;
var converted = testVal as reflectee.runtimeType;
Контекст: я хочу создать класс Mixin, который определяет метод validate
:
abstract class Validatable {
bool validate(Map document) {
}
}
Он будет перебирать переменные, определенные для класса, в котором они смешаны, и проверяет, относятся ли переменные в документе к тому же типу.
Теперь он работает с получением runtimeType
соответствующих переменных, но он очень ограничен, поскольку не выполняет приведение типов. Например:
var a = 1.1;
var b = 1;
print(a.runtimeType == b.runtimeType); // false
Было бы лучше проверить с as
, но я не вижу, как заставить это работать. Потому что:
a = b;
print(a.runtimeType); // int
а не вдвое, как можно было бы ожидать.
Является ли это возможным?