sto porting alcuni Java-codice per dardo e utilizza pesantemente questi tipi di mappe:Map da Class a Dart
Map<Class<? extends SomeClass>, SomeOtherClass> map = new HashMap<>();
Al momento questo sembra essere impossibile in dardo. Sono consapevole che c'è una proposta di introdurre primi tipi di livello: http://news.dartlang.org/2012/06/proposal-for-first-class-types-in-dart.html tali da introdurre
class Type {
@native String toString();
String descriptor(){...} // return the simple name of the type
}
Così fino a quando questa proposta viene attuata ho creato seguenti classi:
class Type {
final String classname;
const Type(this.classname);
String descriptor() => classname;
}
e le classi in cui ho bisogno ha un semplice get-metodo
abstract Type get type();
In questo modo posso utilizzare il mio Type
proprio come avrei usato il vero Type
un d per passare più tardi dovrei solo cancellare la mia soluzione alternativa.
La mia domanda: C'è qualche modo di fare questo tipo di mappatura (che non vedo) o è il modo in cui lo faccio una soluzione ragionevole fino a quando la vera classe Type
viene introdotta?
Aggiornamento per Dart 1.0
Esso può essere fatto in questo modo:
var map = new Map<Type, SomeOtherClass>();
// either
map[SomeOtherClass] = new SomeOtherClass();
// or
var instance = new SomeOtherClass();
map[instance.runtimeType] = instance;
nel tuo esempio la chiave nella mappa è un'istanza della classe Test, ma Ho bisogno che la classe sia la chiave, non l'istanza .. oh capisco, il mio codice Java è sbagliato –
ha aggiornato la mia domanda .. –