在Dart中,可以通过使用factory
关键字和redirect
关键字来在多个命名构造函数之间重用构造函数。
首先,使用factory
关键字定义一个工厂构造函数。工厂构造函数是一种特殊的构造函数,它可以返回一个已经存在的实例,或者返回一个新的实例。然后,使用redirect
关键字将工厂构造函数重定向到其他构造函数。
下面是一个示例代码:
class MyClass {
String name;
int age;
MyClass(this.name, this.age);
factory MyClass.fromName(String name) {
return MyClass(name, 0);
}
factory MyClass.fromAge(int age) {
return MyClass('', age);
}
}
在上面的示例中,MyClass
类有两个命名构造函数:fromName
和fromAge
。这两个构造函数都使用了工厂构造函数,并通过redirect
关键字将构造函数重定向到了默认构造函数MyClass(this.name, this.age)
。这样,无论是通过MyClass.fromName
还是MyClass.fromAge
创建实例,最终都会调用默认构造函数。
使用示例:
void main() {
MyClass obj1 = MyClass.fromName('John');
print(obj1.name); // 输出:John
print(obj1.age); // 输出:0
MyClass obj2 = MyClass.fromAge(25);
print(obj2.name); // 输出:''
print(obj2.age); // 输出:25
}
在上面的示例中,我们通过MyClass.fromName
和MyClass.fromAge
分别创建了两个实例,并打印了它们的属性值。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云