在Android中如何使用注解取代Enum
2016-07-12 16:27
483 查看
在Android中如何使用注解取代Enum
Android中定义了许多的注解,如@IdRes,@LayoutRes…可以帮助我们在传递参数时,避免参数传递出错。当然我们也可以通过枚举定义参数,也可以达到相同效果。在Android中,系统为我们定义好了2个注解,@IntDef和@StringDef,具体代码如下所示:
Test类定义好注解public class Test { public static final int A = 0; public static final int B = 1; public static final int C = 2; public static final int D = 3; public static final String E = "E"; public static final String F = "F"; public static final String G = "G"; public static final String H = "H"; @IntDef({A, B, C, D}) @Retention(RetentionPolicy.SOURCE) public @interface FormatInt { } @StringDef({E, F, G, H}) @Retention(RetentionPolicy.SOURCE) public @interface FormatString { } }
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int format = getInt(Test.A); String f = getString(Test.E); } //在方法参数上使用注解 public int getInt(@Test.FormatInt int format) { return format; } public String getString(@Test.FormatString String format) { return format; } }
@IntDef注解的代码
@Retention(SOURCE) @Target({ANNOTATION_TYPE}) public @interface IntDef { /** Defines the allowed constants for this element */ long[] value() default {}; /** Defines whether the constants can be used as a flag, or just as an enum (the default) */ boolean flag() default false; }
@StringDef的注解代码
@Retention(SOURCE) @Target({ANNOTATION_TYPE}) public @interface StringDef { /** Defines the allowed constants for this element */ String[] value() default {}; }
相关文章推荐
- Android笔记--简单的自定义View之组合模式
- 安卓学习笔记---Android实现页面悬浮显示
- android 通信
- Android 自定义属性
- Android 设置相关
- Android 软键盘弹出与关闭
- 三款Android炫酷Loading动画组件推荐
- Android解决ADB not responding问题
- Android 自定义组合控件
- Android系统Choreographer机制实现过程
- UPX对Android上ELF加壳使用过程中的若干问题总结
- Android权限弹窗影响录音动画解决办法
- Android Binder机制(四) defaultServiceManager()的实现
- Android Studio配置SVN
- Android6.0将某个分区作为内置sdcard
- Android上定义播放器控件UniversalVideoView
- Android自学指导
- Android样式的开发(转)
- Android与串口设备通信的方案四种
- android 事件分发机制(图文详解)