未定義の拡張メソッド
拡張機能「{1}」にメソッド「{0}」は定義されていません。
説明
#この診断は、拡張機能のオーバーライドを使用してメソッドを呼び出そうとした際に、指定された拡張機能にそのメソッドが定義されていない場合に、アナライザーによって生成されます。また、静的メソッドを参照しようとした際に、指定された拡張機能にそのメソッドが定義されていない場合にも、この診断が生成されます。
例
#以下のコードは、拡張機能Eに名前がbのインスタンスメソッドが宣言されていないため、この診断を生成します。
dart
extension E on String {
String a() => 'a';
}
extension F on String {
String b() => 'b';
}
void f() {
E('c').b();
}以下のコードは、拡張機能Eに名前がaの静的メソッドが宣言されていないため、この診断を生成します。
dart
extension E on String {}
var x = E.a();一般的な修正
#メソッド名が間違っている場合は、既存のメソッドの名前に変更してください。
dart
extension E on String {
String a() => 'a';
}
extension F on String {
String b() => 'b';
}
void f() {
E('c').a();
}メソッド名が正しいが、拡張機能名が間違っている場合は、拡張機能名を正しい名前に変更してください。
dart
extension E on String {
String a() => 'a';
}
extension F on String {
String b() => 'b';
}
void f() {
F('c').b();
}メソッド名と拡張機能名が両方とも正しいが、メソッドが定義されていない場合は、メソッドを定義してください。
dart
extension E on String {
String a() => 'a';
String b() => 'z';
}
extension F on String {
String b() => 'b';
}
void f() {
E('c').b();
}