如果我有一个静态变量(比方说 foo),它的值是从另一个静态变量继承的,然后我更改了另一个静态变量的值,然后尝试访问 foo,它仍然给出了它初始化的旧值。
我有一个带有以下代码的文件endpoints.dart
class EndPoints {
static String baseUrl = "someurl.com/";
static String place = baseUrl + "api/v1/place";
}
在这里,如果我更改任何其他文件中的baseUrl并将其打印
onPressed () {
print(EndPoints.place);
//prints someurl.com/api/v1/place
EndPoint.baseUrl = "changedurl.com/";
print("${EndPoints.baseUrl}");
//prints changedurl.com/
print("${EndPoints.place}");
//still prints someurl.com/api/v1/place
}
我担心的是为什么static String place = baseUrl + "api/v1/place"
不采用更新后的baseUrl
值。
place
更改时不会重新计算静态成员baseUrl
。您可以像这样定义一个自定义的 getter 函数:
class EndPoints {
static String baseUrl = "someurl.com/";
static String get place => baseUrl + "api/v1/place";
}
通过此更改,您的代码将输出place
具有更新值的 。此外,您的代码中有一个错字,EndPoint.baseUrl
应该是EndPoints.baseUrl
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句