我有个公用方法,要求其中一个形参的取值范围在1-14之间的整型值。不想在方法内部判断,希望在被调用时就已经限定该形参的取值范围。有哪些实现方法?

解决方案 »

  1.   

    直接在参数上是做不到的,给个变通的方法参考一下。public class Test {
        
        public static void main(String[] args) {  
            Test t = new Test();
            t.test(Params.PARAMS_14);
        }
        
        public void test(Params params) {
            int num = params.getNum();
            System.out.println(num);
        }
    }class Params {
        private static int k = 0;
        private int num;
        private Params() {
            this.num = ++k;
        }    
        public int getNum() {
            return this.num;
        }
        public static Params PARAMS_1 = new Params();
        public static Params PARAMS_2 = new Params();
        public static Params PARAMS_3 = new Params();
        public static Params PARAMS_4 = new Params();
        public static Params PARAMS_5 = new Params();
        public static Params PARAMS_6 = new Params();
        public static Params PARAMS_7 = new Params();
        public static Params PARAMS_8 = new Params();
        public static Params PARAMS_9 = new Params();
        public static Params PARAMS_10 = new Params();
        public static Params PARAMS_11 = new Params();
        public static Params PARAMS_12 = new Params();
        public static Params PARAMS_13 = new Params();
        public static Params PARAMS_14 = new Params();
    }
      

  2.   

    如果是JDK1.5或以上的版本,还可以用枚举:enum Params {
        PARAMS_1(1),
        PARAMS_2(2),
        PARAMS_3(3),
        PARAMS_4(4),
        PARAMS_5(5),
        PARAMS_6(6),
        PARAMS_7(7),
        PARAMS_8(8),
        PARAMS_9(9),
        PARAMS_10(10),
        PARAMS_11(11),
        PARAMS_12(12),
        PARAMS_13(13),
        PARAMS_14(14);    private int num;
        Params(int num) {
            this.num = num;
        }    
        public int getNum(){
            return this.num;
        }
    }