On Tuesday, 30 October 2012 18:03:16 UTC+5:30, John Chipps-Harding wrote:
Is it possible to pass a reference to a class? E.g.:
Object instanciateThisClass(Class clazz) {
return new clazz();
}
I have searched but cannot seem to find a solution.
You can try the following John.
import 'dart:mirrors' as Mirrors;
class A {
int i = 0;
A(this.i);
}
Future foo(ClassMirror classMirror) {
var newInstance = null;
var future = classMirror.newInstance('', [42]);
future.then((val) {
newInstance = val.reflectee;
print(newInstance);
print(newInstance.runtimeType);
print(newInstance.i);
});
return future;
}
main() {
var obj = new A(4);
var instanceMirror = Mirrors.reflect(obj);
var classMirror = instanceMirror.type;
var future = foo(classMirror);
Futures.wait([future]);
}