gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 03:36:12 25 4
gpt4 key购买 nike

这是交易:

我有 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com