Dart 代码:

main() {
    var x = new X();
    x.go();
}

class M<T> {
    go() {
        print(T);   // !!!! can't be compiled
    }
}

class X extends M<X> {
}

您可以在go方法中看到,我想打印类型参数T的信息,但是无法编译。

如何获取类型参数T的名称?

最佳答案

您无法在compile time上执行此操作,因为使用T声明了通用类型参数to-be-specified-later

只有通过reflection才有可能,但这是一项昂贵的操作。

一个小的但重要的说明。

目前已经计划了这种可能性,但当前的"mirrors"库版本并未实现这种可能性,该库为Dart提供了基本的反射支持(SDK版本0.6.3.3_r24898)。

09-28 06:59