在Android中如何使用注解取代Enum
来源:互联网 发布:caffe接口matlab 编辑:程序博客网 时间:2024/06/01 08:00
在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 {};}
0 0
- 在Android中如何使用注解取代Enum
- Android 中如何使用 enum / 枚举
- 我为何要在Android中使用枚举(enum),如何使用?
- 枚举常量(enum)如何在CUDA核函数中使用
- c++中enum 如何使用
- c++中enum 如何使用
- c++中enum 如何使用
- c++中enum 如何使用
- c++中enum 如何使用
- c++中enum 如何使用
- c++中enum 如何使用
- 在JSF中使用enum
- 在JavaWeb中使用enum
- Java注解在Android中使用
- 使用注解代替enum
- 在Fedora Core 6中如何设置使用fcitx输入法取代scim
- Android 在ListView中使用自定义的ViewGroup来取代ViewHolde
- Annotation & Enum :Java中注解和枚举的使用
- POJ 1386 有向图的欧拉路径
- Swift - 侧滑菜单的实现(样例2:仿QQ,菜单带缩放效果)
- mysql数据库中文乱码解决
- cocos2dx_CurlTest分析
- Maven核心pom.xml详解
- 在Android中如何使用注解取代Enum
- iOS_富文本的图文混排
- uwa内存占用
- C++构造与析构类与类中的指针对象
- JPA学习笔记(15)——关联查询
- 华为手机打开log日志的方法[Android]
- 编译链接问题
- NP-Hard Problem(cf#360)
- 网络基石 —— ADSL