黑马程序员技术交流社区

标题: 泛型方法的定义 [打印本页]

作者: 李贺晓    时间: 2012-10-30 16:19
标题: 泛型方法的定义
泛型对其所有可能的类型参数,都具有相同的行为,从而可以把相同的类当成许多不同的类来处理。与此完全一致的是,类的静态变量和方法也在所有的实例间共享,所以在静态方法、静态初始化、静态变量的声明和初始化中不允许使用泛型
但是我看有的程序中定义泛型方法
static <T> void from ArrayToCollection(T[] a,Collection<T>c )
{
      for(T o:a)
         {
             c.add(o);
         }
}

这个方法为什么还可以定义成功,泛型不是不能定义静态方法吗?
作者: 李贺晓    时间: 2012-10-30 16:30
仔细看了下,明白是什么原因了
static <T> void from ArrayToCollection(T[] a,Collection<T>c )
{
      for(T o:a)
         {
             c.add(o);
         }
}
这个是静态泛型方法
在静态方法中不允许使用泛型是这个样子的
class Apple<T>
{
     publci static T info;
    public static T getInfo()
   {
        return this.info;
   }
}
这里的静态方法和静态变量不允许使用泛型修饰
作者: 小灰灰    时间: 2012-10-30 16:30
本帖最后由 都彭韬 于 2012-10-30 16:32 编辑

静态函数可以定义泛型啊!

但是静态函数的泛型要单独定义,就向你写的那样。 静态函数的泛型是不可以定义在类上面的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2