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

Dart 如何强制实现抽象类的类声明其变量?,dart,Dart,交易如下: 我有4个类,每个类中有将近1200个变量(它们是图标) 静态常量IconData访问\u报警=IconData(0xe805,fontFamily:\u kFontFam); ... 由于所有这些变量在这些类之间具有相同的名称,我想创建一个“全局模板”(abstract classa.k.a.interface),以便开发人员在运行时在这些“图标包”之间进行更改,并帮助我确保所有变量在类之间具有相同的名称,所有图标都已设置 因此我创建了抽象类,如下所示: 抽象类{ 静态IconDa

交易如下:

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

静态常量IconData访问\u报警=IconData(0xe805,fontFamily:\u kFontFam);
...
由于所有这些变量在这些类之间具有相同的名称,我想创建一个“全局模板”(
abstract class
a.k.a.
interface
),以便开发人员在运行时在这些“图标包”之间进行更改,并帮助我确保所有变量在类之间具有相同的名称,所有图标都已设置

因此我创建了
抽象类
,如下所示:

抽象类{
静态IconData访问报警;
静态IconData访问报警;
静态数据访问时间;
...

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

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

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

创建子类时,请正常执行,覆盖抽象获取程序:

class A extends MaterialIcons{
  IconData get access_alarm => IconData(0xe805, fontFamily: _kFontFam);
}
如果未实现其中一个抽象getter,则会发生以下错误:

错误:非抽象类“A”缺少以下成员的实现:


这是您想要的预期行为。

请不要命名变量
abc_xys
。请看@KevinMoore本人,我不使用
snake_case
。但是,flatter会对图标进行命名。由于此项目旨在改进flatter中的材质图标,我也会这样做。
class A extends MaterialIcons{
  IconData get access_alarm => IconData(0xe805, fontFamily: _kFontFam);
}