黑马程序员技术交流社区

标题: 泛型类中的静态方法 [打印本页]

作者: 李月    时间: 2012-5-10 10:57
标题: 泛型类中的静态方法
public class genen <T>{
       
        public T add(T t)
        {
                return null;
        }
        public void delete(T t)
        {
               
        }
       
        public static <E> void update(E obj)
        {
               
        }

}


为什么静态方法中定义的泛型和类中的不一样呢?
还有毕老师说的静态方法不可以访问类上定义的泛型。这句话要怎样理解呢?


作者: 周素强    时间: 2012-5-10 11:29
静态是随着类加载就存在在方法区中,是在你创建对象之前就已经存在了,所以不能使用类上泛型。
不知我理解的对不对啊 不对之处已指正。
作者: 永恒之翼网络    时间: 2012-5-10 13:36
首先要明白,定义在类上的泛型,只对这个类的对象起作用,如果对象不存在,那么这个泛型就不起作用。由于静态成员方法是优先于类的对象存在的,所以定义在类上的泛型对静态方法起不了作用,要单独对静态成员方法指定泛型。
作者: 张成龙    时间: 2012-5-10 14:31
静态优先于对象存在,随着累的加载而加载,
泛型定义在方法是因为静态方法中的类型不确定,所以静态方法不可以访问类上定义的泛型




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