更新:作为“摆脱”注释的澄清,我的意思是在不更改分析仪本身的情况下,抑制分析仪抛出的警告
我正在扩展带有注释的类,并且我想覆盖父类注释,更具体地说,将其删除。有可能这样做吗?
例如:
@immutable
class A {}
/// get rid of @immutable annotation
class MutableA extends A {}
答案 0 :(得分:1)
注释在Dart语言本身中没有语义,它们表示识别它们的工具决定它们的含义。
注释永远不会被继承。如果您使用dart:mirrors
进行检查,则注释仅存在于源代码中。
因此,如果一个工具识别了@immutable
,并且确定子类“继承”了“不可变”的属性,那么这就是该工具的决定。
immutable
annotation被记录为适用于“所有子类型”。
从语言的角度来看,@immutable
上没有MutableA
,所有内容都在工具的顶部,因此没有要删除的注释。 A
上的注释的含义是A
的所有子类都必须是不可变的。
从分析仪收到的消息是提示。您可以通过各种方式suppress hints,例如,在引起提示的行之前添加“忽略”注释。 在这种情况下,您可以添加
// ignore: must_be_immutable
在子类的类声明之前的行上,这是不可变的。那应该抑制提示。