ich einige Java-Code bin Portierung auf Dart und verwendet es schwer, diese Art von Karten:Karte von Klasse in Dart
Map<Class<? extends SomeClass>, SomeOtherClass> map = new HashMap<>();
Im Moment scheint dies in Dart unmöglich. Ich bin mir bewusst, dass es einen Vorschlag erste Ebene Typen einzuführen, ist: http://news.dartlang.org/2012/06/proposal-for-first-class-types-in-dart.html die
class Type {
@native String toString();
String descriptor(){...} // return the simple name of the type
}
So einführen würde, bis dieser Vorschlag ich folgende Klasse erstellt haben, umgesetzt wird:
class Type {
final String classname;
const Type(this.classname);
String descriptor() => classname;
}
und die Klassen, wo ich es habe eine einfache get-Methode
abstract Type get type();
So kann ich meine verwenden können Type
so wie ich die reale Type
ein verwenden würde Um später zu wechseln, müsste ich nur meine Problemumgehung löschen.
Meine Frage: Gibt es eine Dart-Art, diese Art von Mapping zu machen (was ich nicht sehe) oder ist es eine vernünftige Lösung, bis die echte Type
Klasse eingeführt wird?
Update für Dart 1.0
Es kann auf diese Weise geschehen:
var map = new Map<Type, SomeOtherClass>();
// either
map[SomeOtherClass] = new SomeOtherClass();
// or
var instance = new SomeOtherClass();
map[instance.runtimeType] = instance;
in Ihrem Beispiel der Schlüssel in der Karte ist eine Instanz der Klasse Test, aber Ich brauche die Klasse, um der Schlüssel zu sein, nicht die Instanz .. oh ich sehe, mein Java-Code ist falsch –
meine Frage aktualisiert .. –