1.2.31版本kotlin中引用java中public sta

2018-05-14  本文已影响29人  叽哩叽哩鸡

现象

java中

private static fianal IS_RELEASE = true;
public static fianal BASE_URL = IS_RELEASE ? "A" : "B";

kotlin中

Log.i("a", BASE_URL)

第一次运行, 显示A;
然后把 IS_RELEASE 改成 false, 再次运行, 会发现显示的还是A.


解决办法

先说解决办法, 再分析原因吧.


原因分析

尝试了多种方式, 发现都没有效果:

通过第三个尝试, 大体猜到了原因:
新版本的 kotlin 为了加快编译速度, 编译文件中的未曾改动代码的 public static final 变量 就不会再次编译了, 虽然 BASE_URL 引用的 IS_RELEASE 已经发生了变化, 但是 BASE_URL 本身的代码没有变动, 导致再次运行时 IS_RELEASE 仍然是原来的状态, 导致了这个问题.

上一篇 下一篇

猜你喜欢

热点阅读