gpt4 book ai didi

java - Integer 扩展 Number 但无法对

转载 作者:行者123 更新时间:2023-12-01 07:54:15 26 4
gpt4 key购买 nike

Integer extends Number 那么为什么我会在底部收到错误?

interface Predicate<T> {
public abstract boolean check(T t);
}

Predicate<? extends Number> predUpper = null;

predUpper.check(new Integer(73));

错误:谓词类型中的方法 check(capture#6-of ? extends Number) 不适用于参数(整数)

我已阅读:Method in the type Map<String,capture#1-of ? extends Object> is not applicableDifference between <? super T> and <? extends T> in Java

最佳答案

Predicate消耗 Integer ,你应该这样做:

Predicate<? super Integer> predUpper //Solution 1

或者只是:

Predicate<Number> predUpper //Solution 2

但是,这些方法存在差异:

  • 类型参数 <? super Integer来自“Solition 1”的 代表 Integer整个家族父类(super class)型(包括Integer)。

  • 类型参数 <Number>来自“解决方案 2”的代表 Number 的子类界面。自 Integer就是这样,这里也适用。

更多信息:

关于java - Integer 扩展 Number 但无法对 <?用 Integer 扩展 Number>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32309627/

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