首页 > Java > 类型不匹配:无法从 DLL.Node 转换为 DLL.Node

类型不匹配:无法从 DLL.Node 转换为 DLL.Node

王林
发布: 2024-02-22 13:10:10
转载
859 人浏览过

php小编柚子带来的java问答精选,今日问题:类型不匹配:无法从 DLL.Node 转换为 DLL.Node。该问题通常涉及泛型类型擦除引起的编译错误,需要通过类型转换或重新设计代码来解决。在Java中,泛型的实际类型在编译后会被擦除,导致编译器无法准确识别类型。通过理解泛型擦除的原理和灵活运用类型转换,可以有效解决这类问题。

问题内容

我正在努力实现带有嵌套节点类的双向链表。由于类的通用性质,我收到类型不匹配错误。由于嵌套类不是静态类,我认为它将使用顶层类中的泛型类型运算符。

public class DLL <E> {
    
    public class Node<E>{
        private E element;
        private Node<E> prev;
        private Node<E> next;
        
        public <E> Node (E element, Node <E> prev, Node<E> next){
            this.element = element; // Error: Type mismatch: cannot convert from E to E
            this.prev = prev; // Error: Type mismatch: cannot convert from DLL<E>.Node<E> to DLL<E>.Node<E>
            this.next = next;// Error: Type mismatch: cannot convert from DLL<E>.Node<E> to DLL<E>.Node<E>
        }
登录后复制

任何帮助都会很棒!

解决方法

而不是重新声明泛型类型 e。 node 构造函数应使用外部 dll<e> 类中的泛型类型 e。解决办法如下:

public class DLL<E> {
    
    public class Node {
        private E element;
        private Node prev;
        private Node next;
        
        public Node(E element, Node prev, Node next) {
            this.element = element;
            this.prev = prev;
            this.next = next;
        }
    }

}
登录后复制

以上是类型不匹配:无法从 DLL.Node 转换为 DLL.Node的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板