代码之家  ›  专栏  ›  技术社区  ›  Michel Feinstein

了解Dart私有类[重复]

  •  0
  • Michel Feinstein  · 技术社区  · 6 年前

    在“颤振”中,我们通常有如下内容:

    class MyStatefulWidget extends StatefulWidget {
      @override
      _MyState createState() => _MyState();
    }
    
    class _MyState extends State<MyStatefulWidget> {
      void doSomething() => print('hi');
    
      @override
      Widget build(BuildContext context) {
        return Container();
      }
    }
    

    所以 _MyState _

    _MySate 如果它被认为是私人的?

    doSomething() 来自其他文件,但如果我成功了 _doSomething() ,我不能再访问它了…那么为什么我可以从私有类访问公共方法,但我不能从私有类访问私有方法呢?

    1 回复  |  直到 6 年前
        1
  •  9
  •   Rémi Rousselet    6 年前

    虽然 _MyState 是私人的,, StatefulWidget State

    该框架不需要进行操作 _我的国家 ,它通过一个定义良好的原型来操纵这些他可以访问的底层。

    StatefulWidget widget;
    State foo = widget.createState();
    
    foo.initState();
    final newWidget = foo.build(this);
    ...