gpt4 book ai didi

java无法从同一个类中获取静态变量的值

转载 作者:行者123 更新时间:2023-11-29 19:06:31 25 4
gpt4 key购买 nike

我有一个 AppConstants 类,其中有一些静态变量和静态方法。变量喜欢

public static final String BASE_URL = "http://www.somevalue.com/api/";
private static String MID_FIX_API;
public static final String API_CALL = BASE_URL + getMidFixApi() + "/" + GET_KEY(appContext, KEY_FOR_KEY);

因为 MID_FIX_API 是私有(private)的,所以我有它的公共(public) getter/setter。当我通过它的 setter 方法 AppConstants.setMidFixApi("value"); 从另一个类设置它的值并从它的 getter 方法 AppConstants.getMidFixApi(); 获取它的值时到现在还好
但是
问题出现在上面几行之后我调用上面代码中显示的静态变量 API_CALL 从变量 MID_FIX_API 的 getter 获取值并返回 null 尽管我们有之前将值传递给它。

这是整个行序列

AppConstants.setMidFixApi("getCategories");   // setting value
Log.e("InsideSuccess", "MID_FIX_API = " + AppConstants.getMidFixApi()); // working fine till here

Log.e("InsideSuccess", "API_URL = "+AppConstants.API_CALL); // here I'm getting like this http://www.somevalue.com/api/null/somePostFix

请指出我做错了什么。

最佳答案

如前所述,变量 API_CALL 被初始化一次,MID_FIX_API 的当前值最初为 null。

解决方法是创建一个静态方法 (getApiCall()),它只计算之前静态初始化的值,这看起来就像这样简单:

public static String getApiCall(){
return BASE_URL + getMidFixApi() + "/" + GET_KEY(appContext, KEY_FOR_KEY);
}

然后可以用简单的方式调用 AppConstants.getApiCall()

关于java无法从同一个类中获取静态变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47012332/

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