首页 > Java > 正文

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

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

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。解决办法如下:

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<E>.Node<E> 转换为 DLL<E>.Node<E>的详细内容,更多请关注php中文网其它相关文章!

.dll文件大全
.dll文件大全

.dll文件缺失怎么办?.dll文件在哪下载?不用担心,这里为大家提供了所有的.dll文件下载,无论用户丢失的是什么.dll文件,在这里都能找到。用户保存后,在网盘搜索dll文件全称即可查找下载!

下载
来源:stackoverflow网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号