gpt4 book ai didi

dart - 如何在 Dart 中覆盖来自不同库的私有(private)方法?

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

我有这样的课:

class A {
int _foo () {
return 5;
}
}

我有另一个类扩展上述并覆盖私有(private)方法:
class B extends A {
@override
int _foo() {
return super._foo() + 1;
}
}

这在 B 时按预期工作。与 A 在同一个库中.
但是当它们在不同的文件中时,似乎我无法覆盖 _foo()或调用 super._foo() .

什么是解决方法?这甚至可能吗?

请注意,我真正的用例是 A是第 3 方库,我想覆盖私有(private)方法。

最佳答案

从根本上说,您不能覆盖库的私有(private)方法。
您可以使用一些替代技巧。
1) 复制当前代码中的包文件夹并根据需要进行更改。
2) 在库类中创建一个公共(public)方法并在其中传递该私有(private)方法。您可以像定义的公共(public)方法一样访问该私有(private)方法。
3) 示例代码:

class A {
String toString() => _p();
String _p() => 'A';
}

class B extends A {
String _p() => 'B';
}

void main() {
print(new A());
print(new B());
}

我希望这个 referanceongoing conversations一定会有所帮助。 :)。

关于dart - 如何在 Dart 中覆盖来自不同库的私有(private)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61127258/

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