小知了
一个不神奇的博客
八个泛型的demo,哪个有错?why?
2017-01-20 13:57:30   阅读421次
class Demo1{
    public  T fun(T t){
        return t;
    }
}

class Demo2{
    public <T> T fun(T t){
        return t;
    }
}

class Demo3{
    public static <T> T fun(T t){
        return t;
    }
}

class Demo4{
    public static T fun(T t){
        return t;
    }
}

class Demo5<T>{
    public  T fun(T t){
        return t;
    }
}

class Demo6<T>{
    public  <T> T fun(T t){
        return t;
    }
}

class Demo7<T>{
    public static <T> T fun(T t){
        return t;
    }
}

class Demo8<T>{
    public static  T fun(T t){
        return t;
    }
}

1,4,报错T cannot be resolved to a type。

8报错Cannot make a static reference to the non-static type T 

6出现The type parameter T is hiding the type T  使用了@SuppressWarnings("hiding")就好了。  do you kown why?

泛型方法所在的类可以是泛型类,也可以是非泛型类。对于static方法,由于无法访问泛型类中的类型参数,所以static如果想使其具备泛型能力,必须使其成为泛型方法。

原因不是很清楚,模模糊糊,先记下来,以后在研究....



-----------------------------------------------------
转载请注明来源此处
原地址:#

-----网友评论----
1楼:补充 发表于 2017-01-26 20:22:32
1,4既不是泛型类也不是泛型方法,肯定是错的,2,3均是泛型方法。5是普通的泛型类,和泛型方法没有任何关系,仅仅是方法参数是泛型,7是标准的泛型类里面有一个静态方法的demo,所有8肯定错了。6没错,只是多此一举了。即是泛型类也是泛型方法而已,参数<T>本身就没有什么意义....
-----发表评论----
微网聚博客乐园 ©2014 blog.mn886.net 鲁ICP备14012923号   网站导航