Java编译时间接口更改

时间:2012-12-16 20:12:00

标签: java android

我是Java的新手,并继承了现有的Android应用程序。原始开发人员选择使用Interface for Constants。

我的问题是我需要更改一些这些常量来编译App for Production vs Dev。如果我手动修改一些值,一切都会正常工作,但这只是处理这个问题的一种丑陋方式,有一天我可能会犯错误。

所以,我的目标是找到一个对代码的其余部分透明的解决方案,并使用一个Constant在开发和生产之间来回切换。

现有代码示例:

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修改此接口?或者我是否需要点击子弹并修改使用此接口的代码作为解决方案的一部分?

1 个答案:

答案 0 :(得分:4)

不,但你可以在Consts

中写下来
boolean PRODUCTION_BUILD = false;
String BASE_URL = PRODUCTION_BUILD ? "..." : "...";