静态最终变量在重建后具有旧值

时间:2016-05-06 18:50:11

标签: java android

这是我的Config课程:

public class Config
{
  public static final String urlApi = "http://127.0.0.1/api/";
}

每当我想改变位置时,我都要改变这个变量的值:

public class Config
{
  public static final String urlApi = "http://192.168.50.101/api/";
}

在这种情况下,值为:

  

http://192.168.50.101/api/

但是在调试模式下,我看到“urlApi”具有旧值,旧IP地址。有点奇怪。我如何解决它 ?

3 个答案:

答案 0 :(得分:2)

我解决了这个问题。我去"清洁项目"再一次" Make Project",我认为这是解释。

  

注意:如果将基本类型或字符串定义为常量并且该值在编译时已知,则编译器会将代码中的常量名称替换为其值。这称为编译时常量。如果外部世界中常量的值发生变化(例如,如果立法规定pi实际上应该是3.975),则需要重新编译使用此常量来获取当前值的任何类。

答案 1 :(得分:1)

答案 2 :(得分:0)

你必须改变:

public class Config {
    public static final String urlApi = "http://192.168.50.101/api/";
}

为:

public class Config {
    public static String urlApi = "http://192.168.50.101/api/";
}

final关键字表示String是常量 - 而不是变量。这是,它无法改变。删除final将允许在正常情况下更改字符串。