对于我的硕士论文,我的Java代码存在一些问题,我不太确定,为什么我有错误信息(现在)...
基本上,我有一个继承包,如下所示:
IdentifiersTable类基于HashMap< String,LinkedList< InfoIdentifiersTable>取代。
我的继承以classe InfoIdentifiersTable开头。
因此,类Type,InfoType和Function扩展到InfoIdentifiersTable。
Var扩展到InfoType - 和 - Bool,Sequence,Int,Array,Set扩展到Var类。
我在使用IdentifiersTable中的链表来使用这些继承时遇到问题,如下所示:
我真的不明白为什么......
但这样做:
该错误不再出现...是否有任何原因导致该错误消息?
答案 0 :(得分:1)
JDK中的LinkedList有两个构造函数
LinkedList()
和
LinkedList(Collection<? extends E> c)
。
您试图将单个元素传入构造函数,导致错误。
答案 1 :(得分:1)
LinkedList impl。列表界面,是Collection Framework的一部分。所以它定义了两个构造函数。用初始集合清空一个。
请看这里:https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#LinkedList(java.util.Collection)
但是在构造函数中传递单个Value是不可能的,这是你唯一的错误。
你的第二种方法简单实用,我会保留它。否则你需要在Collection中包装你的单个“整数”值,把它传递给LinkedList构造函数,这是无意义的;)
答案 2 :(得分:1)
LinkedList
有两个构造函数:
LinkedList()
- 构造一个空列表。LinkedList(Collection<? extends E> c)
- 按照集合的迭代器返回的顺序构造一个包含指定集合元素的列表。这些构造函数都没有采用单个元素并按照您的尝试实例化集合。
如果要在构造函数中填充列表,则可以使用第二个构造函数来提供由Arrays.asList(...)
生成的列表:
this.idTable.put( "integer", new LinkedList<>( Arrays.asList( integer ) ) );
(但请注意,会有一个小小的性能,因为它会创建一个支持数组的列表来填充链表)