gpt4 book ai didi

java - Java泛型方法的参数

转载 作者:搜寻专家 更新时间:2023-10-31 19:56:03 25 4
gpt4 key购买 nike

我正在尝试弄清楚整个 Java 泛型主题。

更具体地说,这个问题:

public class Node<E>{
private E data;
public Node(E data){
this.data=data;
}
public E get(){
return this.data;
}
public void set(E data){
this.data=data;
}
}

我如何添加一个“扩展”通配符,指定set 方法可以接收 E E 的任何继承类(在这种情况下,节点将持有一个向上转换的参数的版本)。

或者即使我保持原样它也能正常工作吗?

(我可能对泛型的不变方面有点困惑。)

谢谢!

最佳答案

您的类(class)已经按照您的要求进行了。让我们举例说明。假设您已经创建了 Node(NumberIntegerLong 等的父类(super class));

Node<Number> numberNode = new Node<Number>(1);

你也可以通过传递它的子类来调用set方法

numberNode.set(new Integer(1));
numberNode.set(new Long(1));

关于java - Java泛型方法的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17442120/

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