本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

关于 Java 中通配符(泛型)的说明

发布于2024-11-10 22:25     阅读(15)     评论(0)     点赞(17)     收藏(4)


我最近开始阅读《Java 核心》。但我很难理解通配符的概念。

具体来说,我对以下内容的区别感到困惑:

public class A<T extends {some_class}> {/*...*/}

public class A<? extends {some_class}> {/*...*/}

如果有区别的话,有人能帮助我理解吗?


解决方案


不同之处在于你不能?在其他地方使用 ,但你可以使用T。例如:

public class Foo<T extends Number> {
  T value; // you can declare fields of type T here

  int foo() {
    // Since you said T extends Number, you can call methods of Number on value
    return value.intValue(); 
  }
}

那么你为什么要使用它?呢?如果你不需要该类型。在我看来,在类定义中使用它是没有意义的。但你可以在这样的方法中使用它:

int getListSize(List<?> list) {
    return list.size();
}

您对整个类更感兴趣并且它具有不涉及参数化类型的方法的任何类型的方法都可以在这里使用。Class.getName()是另一个例子。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/693736/39c1f8225b518eacfb81/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

17 0
收藏该文
已收藏

评论内容:(最多支持255个字符)