dart:mirrors
adresindeki yeni reflectClass
üst düzey işlevini kullanın.
İşte bir örnek:
import 'dart:html';
import 'dart:mirrors';
class Awesome {
// ...
}
void main() {
var awesome = new Awesome();
Type type = awesome.runtimeType;
ClassMirror mirror = reflectClass(type);
Symbol symbol = mirror.qualifiedName;
String qualifiedName = MirrorSystem.getName(symbol);
query('#name').text = qualifiedName;
}
qualifiedName
şey gibi olmalıdır:
http://127.0.0.1:3030/Users/sethladd/dart/type_name/web/type_name.dart.Awesome
Not bu 21753 veya daha yüksek inşa çalışır. Ayrıca, bu şu anda dart2js içinde çalışmıyor. Bunu dart2js'de desteklemeyi planlıyoruz.
Harika ve uzantı yöntemleriyle daha da iyi olurdu, örneğin: 'String nitdeAdı = reflectClass (type) .qualifiedName.getName()' - [Gilad'ı tanıyalım!] (Https://code.google. com/p/dart/issues/detail? id = 13) :) – mythz
Doğrudan "reflectClass (Awesome)" gibi bir tür kullanma durumu nedir? –
@KaiSellgren: reflectClass uygulamasının, object nesnesini object.runtimeType aracılığıyla aldığınızdan veya yazım türünü kullanıp kullanmadığına aldırış etmemesi. Başka bir deyişle, reflectClass (Awesome) durumu, reflectClass'ın durumuyla aynı olmalıdır ((yeni Awesome()). RuntimeType). Bu durumun yaşanmaması durumunda, lütfen http://dartbug.com adresinden bir hata gönderin. –