dart - 如何强制实现抽象类的类声明其变量?

标签 dart

这是交易:

我有 4 个类,每个类中有将近 1200 个变量(它们是图标)。

static const IconData access_alarm = IconData(0xe805, fontFamily: _kFontFam);
...

由于所有这些变量在这些类之间具有相同的名称,我想创建一个“全局模板”(abstract class a.k.a. interface)以便让开发人员在运行时在这些“图标包”之间进行更改,并帮助我确保所有变量在类之间具有相同的名称,并且所有图标都已设置。

所以我创建了这样的抽象类:

abstract class MaterialIcons {
  static IconData access_alarm;
  static IconData access_alarms;
  static IconData access_time;
  ...

有没有办法强制类设置这些变量?

最佳答案

您不能将抽象概念与属性一起使用。您需要创建抽象方法。

这可以通过多种方式完成,但我能想到的最简单的方式是创建 getters :

abstract class MaterialIcons {
  IconData get access_alarm;
  IconData get access_alarms;
  IconData get access_time;
}

创建子类时,正常执行,重写抽象 getter:

class A extends MaterialIcons{
  IconData get access_alarm => IconData(0xe805, fontFamily: _kFontFam);
}

如果您没有实现抽象 getter 之一,则会出现以下错误:

Error: The non-abstract class 'A' is missing implementations for these members:

这是您想要的预期行为。

关于dart - 如何强制实现抽象类的类声明其变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60936362/

相关文章:

button - Dart polymer -捕捉切换事件-纸支架内的按钮。 polymer_20错误

dart - 如何使用 Flutter Cupertino 图标?

flutter - 定义列表和 map 的不同方法( Dart/flutter 打)

dart - 获取Dart Polymer元素资源URL

dart - _internal 的语义是什么?

android - 在后台更新位置?

flutter - 如何摆脱Flutter/dart中 'Future<dynamic>'的实例?

flutter - 将 flutter PageView 对齐到屏幕左侧

android - 如何在 flutter 中显示来自 firestore 的特定文档详细信息

dart - Dart中的单元测试PODO构造函数异常