我今天在Android Studio支持注释中阅读了article,并开始在我的代码中使用这些注释,下面是一个示例:

public final static class GoogleMapsZoomLevel {

    public static final int MIN_ZOOM_LEVEL = 0;
    public static final int MAX_ZOOM_LEVEL = 21;

    ..

    public GoogleMapsZoomLevel(@IntRange(from=MIN_ZOOM_LEVEL, to=MAX_ZOOM_LEVEL) int zoomLevel) {
        if (zoomLevel < MIN_ZOOM_LEVEL || zoomLevel > MAX_ZOOM_LEVEL) {
            throw new IllegalArgumentException(ERROR_ZOOM_LEVEL_OUT_OF_BOUNDS);
        }
        this.zoomLevel = zoomLevel;
    }
    ..
}

在我的代码的更下方,我有一个在其构造函数中接受double值的类,但没有@DoubleRange批注。我使用@FloatRange还是什么都不使用? long值的相同问题

最佳答案

实际上,@FloatRange的文档指出:

Denotes that the annotated element should be a float or double in the given range

@IntRange的情况类似
Denotes that the annotated element should be an int or long in the given range

09-27 23:01