gpt4 book ai didi

java - 理解java泛型中的一些概念

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:09 26 4
gpt4 key购买 nike

所以我在研究链表时遇到了这段代码。这里的代码使用泛型,我在理解这里的一些事情时遇到问题。

public static class Node<E> 
{
E element;
Node <E> next;
public Node(E e,Node <E> n)
{
element=e;
next=n;System.out.println(next);
}
public E getelement() {return element;}
public Node<E> getnext(){ return next;}
public void setnext(Node <E> n)
{
next=n;
}
}

那么 Node 类 <E> 的作用是什么?意思是?我认为E元素;表示元素属于 E 类型。我说得对吗?节点<E>下一个;这是什么意思?

最佳答案

<E>通过类名声明 E作为泛型类型参数 - 这意味着 Node 的任何实例将是某种类型,并且该类型将由实例化它的代码决定。 new Node<String>()将创建一个 String 类型的节点 new Node<Integer>()创建一个 Integer 类型的节点,依此类推。

哪里E在类中使用然后反射(reflect)特定实例选择的任何类型,因此如果 a 有一个 String 类型的节点,我知道 element将是一个字符串,并且 next将是对包含字符串的另一个节点的引用。

泛型的美妙之处在于,使用此类型参数意味着我不需要为我想要使用的每种类型编写此类的副本,同时还要确保所有引用都是我期望的类型 - 我不会得到 next当我期待一个字符串时返回一个整数。

link JB Nizet provides是一个非常好的主题 - 泛型是一个相当大且微妙的主题,如果您想了解泛型,那么该教程将对您有很大帮助。

关于java - 理解java泛型中的一些概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43154028/

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