You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java通配符extends/super使用疑问:考试代码纠错困惑

Java通配符super/extends理解疑问

做旧考题时,题目要求找出以下代码中的2处错误,但我找出了3处:

考题原代码:

void removeNegatives(List<? super Number> list){
    return list.stream()
           .filter(x -> x < 0)
           .foreach(System.out::println);
}

题目要求该方法删除列表中的所有负数并打印所有元素。我的修改版本如下:

void removeNegatives(List<? extends Number> list){
    return list.stream()
           .filter(x -> x >= 0)
           .forEach(System.out::println);
}

我做了三处修改:把super改为extends、修正了filter的条件、改正了forEach的拼写(原代码是foreach)。但导师表示考题的方法头没有错误,我想知道自己对通配符extends/super的理解哪里有误。

内容的提问来源于stack exchange,提问作者mathsstudent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 14:44:49