public <T>T a(){}如果<T>代表返回的一个任意类型也就相当于JAVA的泛型  那为什么不是 public T<T> a(){} 而是public <T>T a(){}
,因为一般我们的LIST<UserVo>,<泛型>都是在类型后面呀
求解

解决方案 »

  1.   

     public <T> List<T> getValues(Class<T> c) throws Exception{   
            List<T> values = new ArrayList<T>();   
            T o= c.newInstance();   
            values.add(o);   
            return values;   
        }   
           
    public <T> void getValues2(Class<T> c) throws Exception{   
            List<T> values = new ArrayList<T>();   
            T o= c.newInstance();   
            values.add(o);   
               
        }   public <T> List<T> getValues(Class<T> c) throws Exception{
    List<T> values = new ArrayList<T>();
    T o= c.newInstance();
    values.add(o);
    return values;
    }
        
    public <T> void getValues2(Class<T> c) throws Exception{
    List<T> values = new ArrayList<T>();
    T o= c.newInstance();
    values.add(o);

    }上面的“ <T> List<T>”和“<T> void”才具有可比性,从上面可以看出<T>表示声明泛型方法,是语法的一部分,“List<T>”或“void”表示方法的返回类型。至于List<T>,我想你应该知道是什么含义了,就是泛型类的语法方式。 
    另外,上面这两方法可以放到任何普通类里面,不会出现任何问题。但要注意使用JDK 5及以上,还有一点,Eclipse里的编译器是可以设置JDK级别的,即使是JDK5,也可以设置为1.4的级别,所以,不要光看是相同的JDK,还要看使用编译器的级别。
      

  2.   


    <T> void  你这样还有意义吗?返回类型明明都是Void 前面<T> 还有什么意义呢?