尽量多使用注解来提高代码质量

案例
public class DiagonalLayoutSettings {

    @Retention(SOURCE)
    @IntDef({ BOTTOM, TOP, B_T})
    public @interface Position {
    }

    public final static int LEFT = 1;
    public final static int RIGHT = 2;
    public final static int BOTTOM = 4;
    public final static int TOP = 8;
    public final static int B_T = 16;

    @Retention(SOURCE)
    @IntDef({ DIRECTION_LEFT, DIRECTION_RIGHT })
    public @interface Direction {
    }

    public final static int DIRECTION_LEFT = 1;
    public final static int DIRECTION_RIGHT = 2;

    ...

}

这里的@interface Position 和 public @interface Direction就是自己定义的注解.

//用注解去修饰方法参数.

public class DiagonalLayout extends FrameLayout {

    DiagonalLayoutSettings settings;


    public void setPosition(@DiagonalLayoutSettings.Position int position) {
        settings.setPosition(position);
        postInvalidate();
    }

}

要控制setPosition方法的输入参数的合法性, 就可以使用注解来完成. 让这个方法只接收

    public final static int LEFT = 1;
    public final static int RIGHT = 2;
    public final static int BOTTOM = 4;
    public final static int TOP = 8;
    public final static int B_T = 16;

这几个合法的int值.

调用方法

合法的调用:

setPosition(DiagonalLayoutSettings.TOP);

错误的非法调用:

setPosition(9);

编译器会给出错误提示:

Must be one of: DiagonalLayoutSettings.BOTTOM, DiagonalLayoutSettings.TOP, DiagonalLayoutSettings.B_T less... (⌃F1) 

但会编译成功.

多使用这种设计模式非常的好.

---- DONE.----

推荐阅读更多精彩内容

  • 前言   平时在开发中接触过许多的注解,如@Override,@Nullable等,但自己代码中还没怎么用过。所以...
    yizhanzjz阅读 2,191评论 0 10
  • 来自谷歌官方文档的翻译。原文地址 使用Lint等工具进行代码检查可以帮助你查找问题改善代码质量,但是这些工具只能进...
    道阻且长_砥砺前行阅读 3,047评论 3 2
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 25,494评论 9 119
  • 什么是注解(Annotation):Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和...
    九尾喵的薛定谔阅读 2,703评论 0 2
  • 缘聚缘散缘如水,背负万丈尘寰,只为一句,等待下一次相逢。很开心这次的旅途中有大波姐的热情陪伴。我很喜欢这个地方,承...
    心怡LL阅读 140评论 0 0
  • 人要认识自我,除了不断思考自身,还需要理解自己在世界中的位置,参与公共事务,曾经是一代青年人找到自我存在感的途径。...
    qlj乐乐阅读 113评论 0 1
  • Part 1 猎头的一通电话,成为我与先生人生中一个重要的转折。我始终以为,关于选择,无所谓对错。于我,先生决定到...
    婧界阅读 289评论 0 1