【问题标题】:Java wildcards and generics ? super T and ? extends TJava通配符和泛型?超级T和?扩展 T
【发布时间】:2012-08-30 20:10:43
【问题描述】:

在处理通配符(例如将通用项目设置/添加到某个容器)时,是否建议使用类似的东西?

void add(List<?  super T> someList,someitem){
    someList.add(someItem);
}

在检索项目时,建议使用类似的东西

 <T> void f1(List<? extends T> obj, T item) {
     obj.add(item);
}

这背后的原理是什么?我什么时候知道我是否应该使用它?

【问题讨论】:

标签: java generics wildcard extends super


【解决方案1】:

你应该看看PECS原理的解释

What is PECS (Producer Extends Consumer Super)?

简而言之,当您想从对象中获取信息时,请务必使用带通配符的扩展。

当你想将信息放入对象时,请确保使用 super 和通配符

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2017-05-21
    • 2011-05-19
    • 2011-10-05
    相关资源
    最近更新 更多