2013-07-13 3 views
3

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?

ответ

1

Вы не можете сделать это при compile time, потому что общий параметр типа T, заявленный в терминах to-be-specified-later.

Это может быть возможно только через reflection, но это дорогостоящая операция.

Одно небольшое, но значительное разъяснение.

Эта возможность планируется, но не реализована в текущей версии библиотеки "mirrors", которая обеспечивает базовую поддержку отражения для Dart (SDK версии 0.6.3.3_r24898).

+1

Как получить это через 'отражение'? Я не знаю, что означает «отражение». – Freewind

Смежные вопросы