能不能针对我的注释做出解释呢?

解决方案 »

  1.   

    第一个问题://上面一行写成 A<Manager> result = new A<Manager>(managers[0], managers[1]);不行吗?
    答案是不可以的,因为你的
    class A<T>
    {
            public A(T first, T second)
            {
                    this.first = first;
                    this.second = second;    
            }
             
            public T getFirst()
            {
                    return first;    
            }
             
            public T getSecond()
            {
                    return second;    
            }
             
            public void setFirst(T newValue)
            {
                        first = newValue;
            }
             
            public void setSecond(T newValue)
            {
                    second = newValue;    
            }
            private T first;
            private T second;    
    }
    红色部分的类型是一致的,如果按照楼主的该法,那么两个部分的类型不一样就会报错第二问和第三问其实是一样的问题,如果楼主只是问可不可这么改,答案当然是可以的,不会导致语法报错,但是这样一来,你的程序调用者两个方法的时候,参数的类型就固定死了,不能穿的它们的子类了而已。
      

  2.   

    哦,谢谢楼上,我清晰了些。