首页 > 解决方案 > 为什么不能通过实例访问静态字段

问题描述

为什么不能通过实例访问静态字段。飞镖 2.4 颤振 1.7 安卓工作室 3.4

当我尝试将代码从 JAVA 移植到 Flutter(Dart) 时,出现编译错误

我在 MyMainBloc 中定义了如下变量

static LoginStatus loginStatus = null;

然后我创建一个实例:

MyMainBloc myApp;

我希望使用这样的东西:myApp.loginStatus,而不是 MyMainBloc.loginStatus。

标签: flutterdart

解决方案


特定类的静态成员在类级别而不是对象级别访问。这基本上意味着静态变量在对象之间共享。

考虑到这一点,您可能尝试做的事情可能不是最好的主意。在没有看到更多代码的情况下,最好将 loginStatus 属性声明为封装类的私有成员,然后通过方法(可能是标准的 get*() 方法)访问该成员。

关于班级成员的Oracle 文档在这里可能会有所帮助。


推荐阅读