【问题标题】:Dart - Call class constructor by class nameDart - 按类名调用类构造函数
【发布时间】:2019-09-28 06:40:03
【问题描述】:

我有以下代码:-

  switch (code) {
    case "BleDisconnectedException":
      throw BleDisconnectedException(msg, details);
    case "BleGattException":
      throw BleGattException(msg, details);
    case "BleGattCallbackTimeoutException":
      throw BleGattCallbackTimeoutException(msg, details);
    case "BleCharacteristicNotFoundException":
      throw BleCharacteristicNotFoundException(msg, details);
    case "BleGattCannotStartException":
      throw BleGattCannotStartException(msg, details);
    default:
      throw e;
  }

我如何让 dart 自动执行 switch-case,即按其名称调用类构造函数,作为 String 提供?

【问题讨论】:

    标签: dart


    【解决方案1】:

    据我所知,目前的 Dart 是不可能的,但你可以这样做:

    var factories = Map<String, Object Function()>{'Foo', () => new Foo(), 'Bar', () => new Bar()};
    
    Object instance = factories['Foo']();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-19
      • 2018-02-28
      • 1970-01-01
      • 2015-08-18
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多