使用注解@StringDef替代枚举-以切换环境为例
2017-11-27 14:45
363 查看
1. build.gradle添加依赖(Android Studio 3.0):
compile 'com.android.support:support-annotations:25.3.1' // 25.3.1 为编译的Android Support Library版本
2. 以一个切换环境的方法为例:
public class EnvironmentConfig { public static String API_VERSION_NAME = "A"; public static String API_DOMAIN = "https://api-alpha.xxx.com"; public final static String ALPHA = "A"; public final static String UAT = "U"; public final static String PRODUCT= ""; @StringDef({ALPHA, UAT, PRODUCT}) @Retention(RetentionPolicy.SOURCE) public @interface Environment { } public static void initEnvironment(@Environment String type) { API_VERSION_NAME = type; switch (type) { case ALPHA: { API_DOMAIN = "https://api-alpha.xxx.com"; } case UAT: { API_DOMAIN = "https://api-uat.xxx.com"; } break; default: { API_DOMAIN = "https://api.xxx.com"; } break; } } }
3. 使用
由于项目采用组件化开发,涉及公司多个app,所有考虑切换环境合理解耦。在Application对环境进行初始化。eg:public class MainApplication extends BaseApplication { @Override public void initData() { super.initData(); EnvironmentConfig.initEnvironment(EnvironmentConfig.ALPHA); } }
参考:
Android Support库——support annotationsandroid开发Enum (枚举)的完美替代 —— @IntDef的使用
相关文章推荐
- Java Enum枚举替代方案--Android IntDef/StringDef Annotation注解
- android开发Enum (枚举)的更轻量级的替代方案 —— @IntDef的使用 原创 2017年11月28日 09:17:58 77 最近在翻看Android源码的时候,无意中看到这么一个注解,
- android开发Enum (枚举)的更轻量级的替代方案 —— @IntDef的使用
- android开发Enum (枚举)的完美替代 —— @IntDef的使用
- @IntDef的使用(替代枚举)
- (4.6.18)android开发Enum (枚举)的完美替代 —— @IntDef的使用
- android开发Enum (枚举)的完美替代 —— @IntDef的使用
- Android APT开发教程 六 使用注解替代setOnClickListener还有注释给String赋值
- Android中使用注解替代枚举
- 教你使用Android自带注解@IntDef代替Enum (枚举)
- android使用注解替代枚举
- hibernate的两个特殊注解@Transienth和@Enumerated(EnumType.STRING)和@Table(name="_teacher"),忽略,定义枚举,定义表名
- @requestmapping--springmvc注解的使用变量和全局部*替代变量方法
- [编写高质量代码:改善java程序的151个建议]建议91 枚举和注解结合使用威力更大
- 使用注解创建主键为String的实体类
- windows下使用批处理实现切换JDK环境变量
- Java Tips: 使用Pattern.split替代String.split
- string类型转为对应的枚举类型,使用Enum.Parse
- 不使用注解配置SpringMVC环境