5

DartアナライザーAPI を使用しています。これにより、Dart コードをイントロスペクトできます。

コード例を次に示します。

void soIntense(anything, {bool flag: true, int value}) {  }

flagパラメータのデフォルト値が であることに注目してくださいtrue

のインスタンスがあると仮定して、どうすればデフォルト値を取得できますParameterElementか?

4

1 に答える 1

4

これが私が見つけた最良の方法です。もっと良い方法があることを願っています。

まず、デフォルト値があることを確認します。

bool hasDefaultValue = _parameter.defaultValueRange != null &&
       _parameter.defaultValueRange != SourceRange.EMPTY;

次に、 を使用できParameterElementますdefaultValueRange

SourceRange range = _parameter.defaultValueRange;
return _parameter.source.contents.data.substring(range.offset, range.end);

英語で:

パラメータ要素のソースのコンテンツのデータの部分文字列を取得します。

于 2015-02-08T20:00:42.493 に答える