![](/img/trans.png)
[英]How do I check if an element was created with a named constructor in dart?
[英]Check constructor element with analyzer in dart
我在 Flutter 中创建了一个库来为带注释的元素生成代码。 我需要使用分析器检查类的构造函数中的参数是否需要。
带注释的小部件示例:
@myAnnotation
class WidgetText extends StatelessWidget {
WidgetText({
@required this.text,
this.subtitle,
});
final String text;
final String subtitle;
@override
Widget build(BuildContext context) {
return Column(
children: [
Text(text),
if (subtitle != null) Text(subtitle),
],
);
}
}
我的访客示例:
class MyAnnotationVisitor extends SimpleElementVisitor<void> {
@override
void visitFieldElement(FieldElement element) {
print('${element.name} is required? ${element.hasRequired}');
}
}
上面的这个访问者为WidgetText
输出这个
text is required? false
subtitle is required? false
仅当在字段上以这种方式标记注释时,访问者才能验证是否需要该字段。 但是是重复的,我想检查构造函数。
@myAnnotation
class WidgetText extends StatelessWidget {
WidgetText({
@required this.text,
this.subtitle,
});
@required
final String text;
final String subtitle;
@override
Widget build(BuildContext context) {
return Column(
children: [
Text(text),
if (subtitle != null) Text(subtitle),
],
);
}
}
这是可能的分析ParameterElement
。 有一个叫做hasRequired
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.