前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA_静态泛型方法及静态泛型成员变量

JAVA_静态泛型方法及静态泛型成员变量

作者头像
用户7886150
修改2020-12-07 17:53:50
5.3K0
修改2020-12-07 17:53:50
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Java中的静态方法与实例方法

#1.泛型类中的静态方法不能使用类的泛型,而应该将该方法定义为泛型方法 

1.错误示范: 

class demo<T>{

    public static T show(T temp) {

        return temp;

    }

2.正确示范: 

class demo<T>{

    public static <T> T show(T temp) {

        return temp;

    }

3.原因: 

   在java中泛型只是一个占位符,必须在传递类型后才能使用。就泛型类而言,类实例化时才能传递真正的类型参数,由于静态方法的加载先于类的实例化,也就是说类中的泛型还没有传递真正的类型参数时,静态方法就已经加载完成。显然,静态方法不能使用/访问泛型类中的泛型。 

这和静态方法不能调用普通方法/访问普通变量类似,都是因为静态申明与非静态申明的生命周期不同。 

#2.不能定义静态泛型变量 

1.原因: 

由于静态变量在java程序一运行时就已经被载入内存,而此时它的类型无法确定,而开辟空间必须知道类型,两者矛盾。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档