【发布时间】:2021-10-10 11:13:50
【问题描述】:
Flutter 中的 Key 类有一个 factory 构造函数,它更像一个变量。
abstract class Key {
const factory Key(String value) = ValueKey<String>;
// ...
}
但是当我做这样的事情时,我得到一个错误:
class Foo {
Foo.empty();
const factory Foo(int i) = Bar; // Error
}
class Bar extends Foo {
Bar() : super.empty();
}
其实我并不太明白这个工厂构造函数兼变量有什么用。谁能解释一下。
【问题讨论】:
-
一个明显的问题是
Bar没有const构造函数,而Foo工厂构造函数需要它。 -
另一个大问题是您正在使用重定向构造函数(来自
=),这要求两个构造函数具有相同的参数。 -
@jamesdlin 谢谢先生,那行得通。虽然我从未见过
=被用于重定向构造函数调用,但我只见过:用于它们。 -
@jamesdlin 如果你不写答案,我可以写答案吗? (虽然如果你写一个答案我会很感激)。谢谢