美文网首页
使用注解限定入参

使用注解限定入参

作者: 笨鱼天阳 | 来源:发表于2021-11-25 17:14 被阅读0次

    时间长了总是会容易遗忘的知识点

    前言

    其实这个写不写都能从源码里翻例子,但是每次去翻总觉得找的不是自己想要的,算了,还是写一下记录下吧。

    • @StringDef 限定

        @Retention(SOURCE)
        @StringDef({
           POWER_SERVICE,
           WINDOW_SERVICE,
           LAYOUT_INFLATER_SERVICE
        })
        public @interface ServiceName {}
        public static final String POWER_SERVICE = "power";
        public static final String WINDOW_SERVICE = "window";
        public static final String LAYOUT_INFLATER_SERVICE = "layout_inflater";
        ...
        public abstract Object getSystemService(@ServiceName String name);
    
    • @IntDef 限定

        @Retention(SOURCE)
        @IntDef({NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS})
        public @interface NavigationMode {}
        public static final int NAVIGATION_MODE_STANDARD = 0;
        public static final int NAVIGATION_MODE_LIST = 1;
        public static final int NAVIGATION_MODE_TABS = 2;
        ...
        public abstract void setNavigationMode(@NavigationMode int mode);
        @NavigationMode
        public abstract int getNavigationMode();
    
        // For a flag, set the flag attribute:
        @IntDef(
            flag = true,
            value = {NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS})
    
    
    • @IntRange 范围限定

        @IntRange(from=0,to=255)
        public int getAlpha() {
            ...
        }
    

    其它

    其它的还有很多的,不一一列举了,可以参考官网文档,或者直接去看源码去。

    参考

    https://developer.android.google.cn/reference/android/support/annotation/IntDef
    https://developer.android.google.cn/reference/android/support/annotation/StringDef
    https://developer.android.google.cn/reference/android/support/annotation/IntRange

    相关文章

      网友评论

          本文标题:使用注解限定入参

          本文链接:https://www.haomeiwen.com/subject/zboatrtx.html