estoy portar algunos de Java de código de Dart y que se utiliza mucho estos tipos de mapas:Mapa de Clase en Dart
Map<Class<? extends SomeClass>, SomeOtherClass> map = new HashMap<>();
Por el momento esto parece ser imposible en dardo. Soy consciente de que hay una propuesta para introducir primeros tipos de niveles: http://news.dartlang.org/2012/06/proposal-for-first-class-types-in-dart.html que pudieran suponer
class Type {
@native String toString();
String descriptor(){...} // return the simple name of the type
}
Así que hasta que esta propuesta se implementa He creado la clase siguiente:
class Type {
final String classname;
const Type(this.classname);
String descriptor() => classname;
}
y las clases en las que necesito tiene un simple método get
abstract Type get type();
de esa manera puedo usar mi Type
al igual que yo usaría el verdadero Type
una d para cambiar más tarde, solo tendría que eliminar mi solución.
Mi pregunta: ¿Hay algún truco de hacer este tipo de mapeo (que no estoy viendo) o es la forma en que lo hago una solución razonable hasta que se introduce la clase real Type
?
Actualización para dardo 1.0
Se puede hacer de esta manera:
var map = new Map<Type, SomeOtherClass>();
// either
map[SomeOtherClass] = new SomeOtherClass();
// or
var instance = new SomeOtherClass();
map[instance.runtimeType] = instance;
en su ejemplo la llave en el mapa es una instancia de la clase Test, pero Necesito que la clase sea la clave, no la instancia ... oh veo, mi código Java está equivocado –
actualicé mi pregunta ... –