gpt4 book ai didi

flutter - 从另一个类调用flutter/dart静态列表或单例对象列表时,始终返回其默认值

转载 作者:行者123 更新时间:2023-12-03 03:25:33 24 4
gpt4 key购买 nike

我试图将静态列表用作可以通过所有dart类访问的全局变量,所以我这样做是这样的:

class MyData {

// initialize it to an empty list
static var List<MyObject> myObjectList = new List<MyObject>();

}

然后在另一个类中,我用MyObject的列表加载了该空列表( 无疑是成功加载了)

我确实向该列表添加了对象,该列表将不会为空!

当需要在另一个类中使用myObjectList时,它将返回一个长度为0的空列表
class SomeClass {

.....

void getMyObjectsList(){
.....
// this display 0 length and has no data
print("my static object list length == ${MyData.myObjectList.length}");
}

}

我也尝试过使用单例实例,它返回相同的结果:
class MyData {

static final MyData _singleton = MyData._internal();

factory MyData() {
return _singleton;
}

MyData._internal();

// object property
var List<MyObject> myObjectList = new List<MyObject>();

}

好吧,这还会返回默认值,它是一个空列表:
class SomeClass {

.....

void getMyObjectsList(){
....
// this display 0 length and has no data
print("my singleton object list length == ${MyData().myObjectList.length}");
}

}

最佳答案

我认为您错过了在列表中存储/复制/添加对象

class MyData {
// initialize it to an empty list
static var List<MyObject> myObjectList = new List<MyObject>();
}

在访问列表之前将一些对象添加到列表
class SomeClass {

.....

/// Add Object to List using this Method
void addDataToList(MyObject data){
myObjectList.add(data);
}

void getMyObjectsList(){
.....
// this display 0 length and has no data
print("my static object list length == ${MyData.myObjectList.length}");
}

}

注意:如果没有数据列表将返回0
因此,请在使用List上的.length()之前添加一些数据。

希望这能解决您的问题

关于flutter - 从另一个类调用flutter/dart静态列表或单例对象列表时,始终返回其默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57973397/

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