美文网首页
flutter foundation的DiagnosticsSe

flutter foundation的DiagnosticsSe

作者: 一叠纸船 | 来源:发表于2020-09-16 11:14 被阅读0次

DiagnosticsSerializationDelegate是有3个属性和7个方法的,_DefaultDiagnosticsSerializationDelegate实现了DiagnosticsSerializationDelegate方法,除了工厂方法,会用DiagnosticsSerializationDelegate的代码解读,其他的属性和方法都会用_DefaultDiagnosticsSerializationDelegate解读,解读了_DefaultDiagnosticsSerializationDelegate也就是解读了DiagnosticsSerializationDelegate。

属性有3个,这三个都只能get,不能set:

  1. subtreeDepth用来控制DiagnosticsNode类型对象垂直结构的层级的
  2. includeProperties 在DiagnosticsNode序列化时是否包含properties。
  3. expandPropertyValues 是否扩展具有DiagnosticableMixin类型值的属性

方法有7个:

  1. 在DiagnosticsSerializationDelegate里的工厂方法DiagnosticsSerializationDelegate(), 返回的就是_DefaultDiagnosticsSerializationDelegate类型的对象
  2. additionalNodeProperties返回DiagnosticsNode类型的一些其他的可序列化信息的映射
  3. filterChildren这个方法会传入两个参数,一个是List<DiagnosticsNode>类型的,一个是DiagnosticsNode类型的。参数owner是参数nodes的”拥有者“,在这个方法内可以筛选出owner新持有的children,即子节点的集合。这个新的集合可能是nodes的子集,也有可能是全新的子节点集合。
  4. filterProperties这个方法和filterChildren非常相似,唯一的不同时,它过滤得不是子节点集合,而是属性(property)的集合。
  5. truncateNodesList这个方法传入的也是两个参数,但是返回的值一定是nodes的子集,同时nodes可以代表是子节点集合或者属性(property)集合。
  6. delegateForNode这个方法返回DiagnosticsSerializationDelegate类型的值,其对应的subtreeDepth的值会减1。
  7. copyWith这个方法就是对当前对象的深复制

这是解读flutter foundation的diagnostic中的一篇,如有错漏之处,还望斧正。

相关文章

网友评论

      本文标题:flutter foundation的DiagnosticsSe

      本文链接:https://www.haomeiwen.com/subject/phvfyktx.html