java - 什么是静态上下文变量
问题描述
public Locator(Context mContext){
getLocation();
this.mContext = mContext;
}
public void setLatitude ( String lat ){
this.latitude = lat;
}
public String getLatitude ( ){
return latitude;
}
public void setLongitude ( String lon ){
this.longitude = lon;
}
public String getLongitude ( ){
return longitude;
}
public void getLocation ( ){
LocationManager lm = (LocationManager)mContext.getSystemService ( Context.LOCATION_SERVICE );
Location location = lm.getLastKnownLocation ( LocationManager.GPS_PROVIDER );
longitude = String.valueOf(location.getLongitude());
latitude = String.valueOf(location.getLatitude());
}
public static String getURL(){
return "api.openweathermap.org/data/2.5/weather?lat=" + latitude + "&lon=" + longitude + "APPID=" + APPID;
}
纬度和经度变量都给了我静态上下文错误以及调用函数。我试过让它们成为静态变量,但没有运气。有任何想法吗?
在我拥有的另一部分代码中,但无论我做什么,我都会在某处遇到静态上下文错误:
final String url = getApiUrlFromAreaId(areaId);
static String getApiUrlFromAreaId ( String areaId ){
return URL + areaId;
}
不,我的编程达不到标准。请多多包涵
解决方案
你得到了
public static String getURL()
这意味着可以在不使用类实例的情况下调用此方法。因此,该方法中使用的所有内容也必须是静态的(如果不作为参数传递)。
我只能假设纬度、经度或 appId 都不是静态的。要么将它们设为静态,要么static
从getUrl
.
推荐阅读
- mongodb - 有没有办法使用 Linux docker 映像在本地测试 Azure CosmosDb?
- visual-studio - 为什么 DAX 编辑器在 Visual Studio 2017 中不可用?
- c# - Entity Framework Core - 构建迁移并得到不清楚的错误,说我添加了两次属性
- sublimetext3 - SublimeText3:如何禁用表现为 increase_font_size 的鼠标手势?
- python - Django 表单无效,必填字段,即使通过输入给出
- angular - NativeScript - Karma 单元测试未按承诺运行
- javascript - 如何更改具有验证错误的选项卡的选项卡指示器颜色?
- python - 如何在 Python 中的多个 Dataframe 之间计算和重新分配数值?
- firebase - 使用 Firebase 托管功能时遇到一些问题
- google-cloud-platform - 这是在 BigQuery 中实现分页的好方法吗?