gpt4 book ai didi

java泛型类和通配符

转载 作者:搜寻专家 更新时间:2023-11-01 01:21:00 24 4
gpt4 key购买 nike

我有一个具有以下功能的 Box 泛型类:

  • 2 put 之一方法应允许客户端插入一个框并将其内容获取到当前框。

我希望此方法获得两种类型的盒子:Box<Number>Box<Integer> ,这就是我更改 put(Box<T>) 的原因put(Box<? extends Number> box) 的方法.但是我收到编译警告。我在这里做错了什么?

这是我当前的代码:我得到的警告是:Type safety: Unchecked cast from capture#1-of ?将 Number 扩展到 T

public class Box<T> {
public T get() {
return element;
}

public void put(T element) {
this.element = element;
}

public void put(Box<? extends Number> box) {
put((T) box.get()); // this is where i get the warning
}

private T element;
}

public class BoxClient {

public static void main(String[] args) {
Box<Number> nBox = new Box<Number>();
Box<Integer> iBox = new Box<Integer>();
nBox.put(iBox);

}

}

最佳答案

改成

public void put(Box<? extends T> box) {
put(box.get());
}

关于java泛型类和通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31348812/

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