如何在Dart中编写静态构造函数?
class Generator
{
static List<Type> typesList = [];
//static
//{ /*static initializations*/}
}
最佳答案
Dart中没有静态构造函数。诸如Shape.circle()
之类的命名构造函数是通过类似以下方式实现的
class A {
A() {
print('default constructor');
}
A.named() {
print('named constructor');
}
}
void main() {
A();
A.named();
}
您可能也对此factory constructors question感兴趣
更新:几个静态初始化程序解决方法
class A {
static const List<Type> typesList = [];
A() {
if (typesList.isEmpty) {
// initialization...
}
}
}
或者,如果静态内容不打算由该类的用户访问,则可以将其移出该类。
const List<Type> _typesList = [];
void _initTypes() {}
class A {
A() {
if (_typesList.isEmpty) _initTypes();
}
}