getM为什么可以工作

public class Pmd {

    private int ret;
    private String msg;
    private Data data;

    public int getRet() {
        return ret;
    }
    public void setRet(int ret) {
        this.ret = ret;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public Data getData() {
        return data;
    }
    public void setData(Data data) {
        this.data = data;
    }

    public static class Data {
        private int err_code;
        private String err_msg;
        private String api_version;
        private A a;

        public int getErr_code() { return err_code; }
        public void setErr_code(int err_code) {
            this.err_code = err_code;
        }
        public String getErr_msg() {
            return err_msg;
        }
        public void setErr_msg(String err_msg) {
            this.err_msg = err_msg;
        }
        public String getApi_version() {
            return api_version;
        }
        public void setApi_version(String api_version) {
            this.api_version = api_version;
        }
        public A getA() {return a;}
        public void setA(A a) {
            this.a = a;
        }

        public static class A {
            private List<M> m, m1, m2, m3;

            public List<M> getM(int i) {
                switch (i) {
                    case 2:
                        return m2;
                    case 3:
                        return m3;
                    default:
                        return m1;
                }
            }

            public void setM(List<M> m) { this.m = m; }

            public static class M {
                private String pmn;
                private String pmid;
                private int pmv;

                public String getpmn() {
                    return pmn;
                }
                public void setpmn(String pmn) {
                    this.pmn = pmn;
                }
                public String getpmid() {
                    return pmid;
                }
                public void setpmid(String pmid) {
                    this.pmid = pmid;
                }
                public int getpmv() {
                    return pmv;
                }
                public void setpmv(int pmv) {
                    this.pmv = pmv;
                }
            }
        }
    }

 

看了你发的另一个帖子,你一直问为什么能工作,那么你认为的工作是什么?要达到什么效果。

单单从getM来看,它就是传一个参数,然后根据这个参数的不同,返回不同的值(m2、m3或者m1)。这个语法就是这么写,这么用的。
还是说你想了解到底层的东西?

你这getM只返回m1,m2,m3,不返回m的
而setM却把值赋给m
最终取到的值和赋的值根本不是同一个东西
另外你代码里根本没有getM的调用
你是怎么知道它可以工作的,能编译不报错就算工作吗