FConfigAnnotationFieldInfo.create constructor
FConfigAnnotationFieldInfo.create(
- ConstantReader reader
工厂方法:从ConstantReader创建FConfigAnnotationFieldInfo实例
reader - 注解的ConstantReader
返回包含被@FconfigAnnotationField标记的字段名称列表的实例
Implementation
factory FConfigAnnotationFieldInfo.create(ConstantReader reader) {
final typeChecker = TypeChecker.typeNamed(FconfigAnnotationField);
// 获取注解类型的元素
return reader.objectValue.type?.element
?.let((it) {
if (it is ClassElement) {
// 查找所有被@FconfigAnnotationField标记的字段
return it.fields
.where((field) => typeChecker.hasAnnotationOf(field))
.map((field) => field.name!)
.toList();
}
return null;
})
?.let((it) => FConfigAnnotationFieldInfo(it)) ??
const FConfigAnnotationFieldInfo([]);
}