【问题标题】:Flutter/Dart runtime type of freezed objectFlutter/Dart 运行时类型的冻结对象
【发布时间】:2021-10-15 09:28:46
【问题描述】:

我需要切换我的@freezed 对象的运行时类型。简单的命名不起作用 f.e

case Person:

但调试器说它是这样的:

_$_Person

我猜这是私有的,所以我无法正确切换此 runtimeType。

有什么想法吗?我真的不想公开这种类型,因为它是这样生成的。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    您正在尝试做的事情需要模式匹配,而 dart 没有。

    通常 switch/case 仅适用于常量和已知值。在您的用例中,您应该使用 if/else:

    void doStuff(obj){
        if(obj is Person){
          // true if _$_Person extends Person
        } else {
          // ...
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-11-26
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 2022-11-12
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      相关资源
      最近更新 更多