3

我是 Java 新手,并且继承了现有的 android 应用程序。最初的开发者选择使用常量接口。

我的问题是我需要更改其中一些常量来编译用于生产与开发的应用程序。如果我手动修改一些值,一切都会正常工作,但这只是处理这个问题的一种丑陋方式,我可能有一天会犯错误。

因此,我的目标是找到一种对其余代码透明的解决方案,并使用单个常量在开发和生产之间来回切换。

现有代码示例:

package package.common;
public interface Consts {

    // Define the Build Type
    boolean PRODUCTION_BUILD = false;

    String BASE_URL   = "https://domain.com/Dev/Mobile.ashx";

    interface RSA {
        String PUBLIC_KEY_SHA1 = "....";
    }

}

并像这样使用

import package.common.Consts;

public class HttpsConn extends NetConnection {

    String url = Consts.BASE_URL;

}

有没有办法在编译时使用 CONSTANT 来修改这个接口?还是我将不得不硬着头皮修改使用此接口作为解决方案一部分的代码?

4

1 回答 1

4

不,但你可以写这个Consts

boolean PRODUCTION_BUILD = false;
String BASE_URL = PRODUCTION_BUILD ? "..." : "...";
于 2012-12-16T20:15:15.520 回答