PetitParserDart@override
のコードにたくさんあることに気付きましたが、それらをどのようにチェックするのかわかりませんか?
IDEA dart-plugin for を試してみまし@override
たが、まったく効果がありません。@override
Dart でどのように使用できますか?
PetitParserDart@override
のコードにたくさんあることに気付きましたが、それらをどのようにチェックするのかわかりませんか?
IDEA dart-plugin for を試してみまし@override
たが、まったく効果がありません。@override
Dart でどのように使用できますか?
@override
ドキュメントから:
継承されたクラス メンバーをオーバーライドするものとしてインスタンス メンバー (メソッド、フィールド、ゲッター、またはセッター) をマークするために使用される注釈。オーバーライドされたメンバーがない場合、ツールはこの注釈を使用して警告を提供できます。
したがって、使用するツールによって異なります。
現在の Dart エディター (r24275) では、次のコードに対する警告は表示されませんが、表示されるはずです (バグのようです)。
import 'package:meta/meta.dart';
class A {
m1() {}
}
class B extends A {
@override m1() {} // no warning because A has a m1()
@override m2() {} // tools should display a warning because A has no m2()
}
@override
注釈はメタデータの一例です。ミラーを使用して、コードでこれらをチェックできます。m1()
子クラスのメソッドに@override
アノテーションがあるかどうかを確認する簡単な例を次に示します。
import 'package:meta/meta.dart';
import 'dart:mirrors';
class A {
m1() {}
}
class B extends A {
@override m1() {}
}
void main() {
ClassMirror classMirror = reflectClass(B);
MethodMirror methodMirror = classMirror.methods[const Symbol('m1')];
InstanceMirror instanceMirror = methodMirror.metadata.first;
print(instanceMirror.reflectee); // Instance of '_Override@0x2fa0dc31'
}