DartのアナライザーAPI を使用しています。これにより、Dart コードをイントロスペクトできます。
コード例を次に示します。
void soIntense(anything, {bool flag: true, int value}) { }
flag
パラメータのデフォルト値が であることに注目してくださいtrue
。
のインスタンスがあると仮定して、どうすればデフォルト値を取得できますParameterElement
か?
これが私が見つけた最良の方法です。もっと良い方法があることを願っています。
まず、デフォルト値があることを確認します。
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);
英語で:
パラメータ要素のソースのコンテンツのデータの部分文字列を取得します。