gpt4 book ai didi

android - 无法从静态方法 Flutter 访问实例成员

转载 作者:行者123 更新时间:2023-12-04 23:43:50 27 4
gpt4 key购买 nike

我想调用 playRefreshBar在我的代码中,但我收到这样的警告

Instance members can't be accessed from a static method



这是我的静态代码
  static List<charts.Series<Spending, String>> createRandomData(){
Timer(Duration(milliseconds:1000),(){
playRefreshBar();
});
}

代码播放刷新栏
  void playRefreshBar() {
timer = Timer.periodic(Duration(milliseconds: refreshTime), (Timer t){
final random = new Random();

final data = [
new Spending('2013', random.nextInt(1000000)),
new Spending('2014', random.nextInt(1000000)),
new Spending('2015', random.nextInt(1000000)),
new Spending('2016', random.nextInt(1000000)),
new Spending('2017', random.nextInt(1000000)),
new Spending('2018', random.nextInt(1000000)),
new Spending('2019', random.nextInt(1000000)),
];

return[
new charts.Series(id: 'Spending',
data: data,
domainFn: (Spending sp, _) => sp.year,
measureFn: (Spending sp , _) => sp.spending,
labelAccessorFn: (Spending sp, _) => '${sp.year}: \$${sp.spending}'
)
];
});
}

最佳答案

静态方法不能调用实例方法的原因是您要使用的实例不包括在内。

由于您可以创建将要使用实例方法的任意数量的实例对象,因此静态(单个全局方法)需要知道您指的是哪一个。

static List<charts.Series<Spending, String>> createRandomData(){
Timer(Duration(milliseconds:1000),(){
instance.playRefreshBar();
});
}

实例在哪里
final instance = new ClassThatHasPlayRefreshBar();

或者,您需要使实例方法也是静态的
static void playRefreshBar()

关于android - 无法从静态方法 Flutter 访问实例成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57216571/

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