LinkedList中的继承

时间:2015-05-19 10:52:31

标签: java

对于我的硕士论文,我的Java代码存在一些问题,我不太确定,为什么我有错误信息(现在)...

基本上,我有一个继承包,如下所示:

Inheritance Package

IdentifiersTable类基于HashMap< String,LinkedList< InfoIdentifiersTable>取代。

我的继承以classe InfoIdentifiersTable开头。

因此,类Type,InfoType和Function扩展到InfoIdentifiersTable。

Var扩展到InfoType - 和 - Bool,Sequence,Int,Array,Set扩展到Var类。

我在使用IdentifiersTable中的链表来使用这些继承时遇到问题,如下所示: enter image description here

我真的不明白为什么......

但这样做: enter image description here

该错误不再出现...是否有任何原因导致该错误消息?

3 个答案:

答案 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 ) ) );

(但请注意,会有一个小小的性能,因为它会创建一个支持数组的列表来填充链表)