我正在尝试在我的代码中调用playRefreshBar
,但收到这样的警告
实例成员不能通过静态方法访问
这是我的静态代码
static List<charts.Series<Spending, String>> createRandomData(){
Timer(Duration(milliseconds:1000),(){
playRefreshBar();
});
}
代码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}'
)
];
});
}
答案 0 :(得分:0)
静态方法无法调用实例方法的原因是因为不包括您要使用的实例。
由于可以创建将要使用该实例方法的任意数量的实例对象,因此静态(单个全局方法)需要知道要引用的实例对象。
static List<charts.Series<Spending, String>> createRandomData(){
Timer(Duration(milliseconds:1000),(){
instance.playRefreshBar();
});
}
实例在哪里
final instance = new ClassThatHasPlayRefreshBar();
或者,您需要将实例方法设置为静态
static void playRefreshBar()