Java中未选中的Cast警告?
发布时间:2020-12-14 19:35:13 所属栏目:Java 来源:网络整理
导读:在这段代码中,我在 java中实现了一个通用链表. public class LLItem extends ComparableItem { 我的Node类被定义为 private class Node{private Item data;private Node next;public Node(Item data){ this.data = data; next = null;}} 现在我的疑问是,我在
在这段代码中,我在
java中实现了一个通用链表.
public class LL<Item extends Comparable<Item>> { 我的Node类被定义为 private class Node{ private Item data; private Node next; public Node(Item data){ this.data = data; next = null; } } 现在我的疑问是,我在编码时不断收到警告 Node x = head,y = (Node) b.head; Type safety: Unchecked cast from LL.Node to LL<Item>.Node 我应该忽略这一点,为什么编译器会生成它.它有解决方法吗? 编辑: b是LL类型,函数签名看起来像 public void mergeAlternate(LL b){ head是LL类的私有实例变量 private Node head; 解决方法
如果您正在创建一个通用实现,那么它也应该是内部通用的.
您缺少Node类的type参数.它应该像这样通用: private class Node<T extends Comparable<T>> { private T data; private Node<T> next; public Node(T data){ this.data = data; next = null; } } 在使用该课程的地方,你可以这样做: 新节点< Item> // … 你的代码看起来像这样: Node<Item> x = head,y = b.head; 而且你不会那样得到警告. 然而,我的蜘蛛意识告诉我那里存在一些建筑问题.由于您没有向我们展示您的所有代码,因此我们无法为您提供任何帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容