Java编译时接口更改
我是Java新手,继承了现有的android应用程序。最初的开发人员选择使用常量接口 我的问题是,我需要更改其中的一些常量来编译应用程序以用于生产与开发。如果我手动修改一些值,一切都会正常工作,但这只是一种丑陋的处理方式,我可能有一天会犯错误 因此,我的目标是找到一个对代码其余部分透明的解决方案,并使用单个常量在开发和生产之间来回切换 现有代码示例:Java编译时接口更改,java,android,Java,Android,我是Java新手,继承了现有的android应用程序。最初的开发人员选择使用常量接口 我的问题是,我需要更改其中的一些常量来编译应用程序以用于生产与开发。如果我手动修改一些值,一切都会正常工作,但这只是一种丑陋的处理方式,我可能有一天会犯错误 因此,我的目标是找到一个对代码其余部分透明的解决方案,并使用单个常量在开发和生产之间来回切换 现有代码示例: package package.common; public interface Consts { // Define the Buil
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;
}
有没有办法在编译时使用常量修改这个接口?或者,我必须咬紧牙关,修改使用此接口作为解决方案一部分的代码吗?否,但您可以在
常量中编写此代码
boolean PRODUCTION_BUILD = false;
String BASE_URL = PRODUCTION_BUILD ? "..." : "...";
这说明了使用接口(并实际使用,而不仅仅是将常量放入)的许多原因之一。如果将代码更改为使用返回所需值的方法,而不是直接向上的常量,则可以简单地定义Consts
接口的两个实现:一个用于dev,另一个用于prod。