gpt4 book ai didi

java - 这些通用方法有什么区别?

转载 作者:行者123 更新时间:2023-11-29 07:39:17 26 4
gpt4 key购买 nike

它们之间有什么区别?

public <T extends MyClass> void myMethod (ArrayList<T> list) {
}

public void myMethod (ArrayList<? extends MyClass> list) {
}

最佳答案

  1. <T extends MyClass>

    • 表示 MyClass特定子类型, 称为 T .
    • 您实际上可以引用类型 T在方法实现中。例如,您可以将列表中的元素分配给类型为 T 的新变量。 .
    • 您可以在列表中添加和删除元素。
  2. <? extends MyClass>

    • 表示 MyClass整个子类型家族 .确切的替代品在编译时未知,因此不能被引用,也不能引入这种类型的新变量。
    • 不能向列表中添加新元素(因为实际类型未知)
    • 您只能从列表中获取元素。但是,它们只能分配给类型为 MyClass 的变量。 . MyClass 的某些特定子类型可能需要额外的向下转换.

关于java - 这些通用方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32091398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com