首页 > 解决方案 > 什么是静态上下文变量

问题描述

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;
}

不,我的编程达不到标准。请多多包涵

标签: java

解决方案


你得到了

public static String getURL()

这意味着可以在不使用类实例的情况下调用此方法。因此,该方法中使用的所有内容也必须是静态的(如果不作为参数传递)。

我只能假设纬度、经度或 appId 都不是静态的。要么将它们设为静态,要么staticgetUrl.


推荐阅读