这个java范型是什么意思?public <X> List<X> find(final String hql, final Object... values) {
return createQuery(hql, values).list();
}
find方法返回X类型的list ,要达到这种效果,通常的返回类型只写 List<X> 即可了,可这个方法在List<X> 前面还有个<X> 这个 <X> 有什么特殊的意思吗?等知情者告知,谢谢!

解决方案 »

  1.   

    X是什么玩意呢?
    没有这个类,所以编译器不认识。
    要想让编译器知道这个是一个泛型的类型,不是一个具体的类,就得跟编译器说一声,怎么说呢?就<X>这么说。
    放在返回值之前,修饰符之后,说明一下就可以了。
      

  2.   

    就是说List<X>中的X可以为前面的X的类型,前面的X为泛型声明。
      

  3.   

    当然有意义了,要先声明一个泛型,才能使用该泛型
    比如,象这种情况public <X> void (X x) { //这里如果不先声明<X>,就不可能定义X x,因为java里没有X这个类型
                            //所以必须先声明<X>表示X是个泛型,才能使用它
    }同样的public <X> List<X> find 也要先声明<X>,否则,谁知道X是泛型还是一个被别人定义的class X
      

  4.   

    java的泛型,我们可以理解为通用匹配类型。List<X>,其中这个X,允许我们调用者给X赋值为任何的对象。
    没有泛型,我们对一个List<User>,就要写一个方法,对List<Address>,又要写一个方法,适用泛型我们可以直接使用List<X>来代替,只要我们在调用的时候指定X是User还是Address就可以了。