numberrange.java

来自「java concurrency in practice 源码. JAVA」· Java 代码 · 共 37 行

JAVA
37
字号
package net.jcip.examples;import java.util.concurrent.atomic.*;/** * NumberRange * <p/> * Number range class that does not sufficiently protect its invariants * * @author Brian Goetz and Tim Peierls */public class NumberRange {    // INVARIANT: lower <= upper    private final AtomicInteger lower = new AtomicInteger(0);    private final AtomicInteger upper = new AtomicInteger(0);    public void setLower(int i) {        // Warning -- unsafe check-then-act        if (i > upper.get())            throw new IllegalArgumentException("can't set lower to " + i + " > upper");        lower.set(i);    }    public void setUpper(int i) {        // Warning -- unsafe check-then-act        if (i < lower.get())            throw new IllegalArgumentException("can't set upper to " + i + " < lower");        upper.set(i);    }    public boolean isInRange(int i) {        return (i >= lower.get() && i <= upper.get());    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?