2017-06-17 43 views
-4

我被分配去实现我自己的Arraylist和LinkedList,它的工作方式与Java提供的Java.util。*中的ArrayList和LinkedList非常相似,但不是所有的方法,而是其中的一部分。ArrayList如何与unsupportedOperationException一起使用?

委派描述说以下内容: enter image description here

所以,它听起来就像是我要实现上面的代码到我的代码,我不打算实现每一个方法。但是,我的源代码没有执行以上的事情就能正常工作。我只是根本没有提到我没有分配实施的那些方法。

我的问题是,我想知道为什么我的代码工作正常,但没有提到上面的赋值描述要求。我怎么能有以上的功能抛出新的异常到我的代码? (反正满足该任务要求)

以下是我的类声明目前:

public class A1ArrayList<E> 
{ 
... 
} 

我一定要延伸或Java的列表API实现的东西与异常抛出该功能的工作?

+2

尝试'公共类A1ArrayList 实现列表 {...'。你可以在任何你喜欢的地方抛出未经检查的异常 – Bohemian

回答

1

是的,你需要实现List接口。

public class A1ArrayList<E> implements List<E> 
{ 
... 
} 
0

通常当你实现或扩展接口/类,迫使你实现你不想提供执行给定的方法,你使用UnsupportedOperationException。使用异常而不是空方法更好的原因是,当它被另一个不被调用的代码调用时,您可以立即看到它。

在你的情况下,如果你没有实现List(或任何其他接口)接口,你不需要提供任何需要抛出的方法UnsupportedOperationException

更新

如果你真的需要让你的类是Java List则可以延长AbstractList,而不是执行列表。

0

事实上,你要抛出UnsupportedOperationException意味着你的类应该实现java.util.List或扩展java.util.AbstractList。 (再次检查的要求!)

如果你这样做,你会发现List API 在所有的方法都必须实现 ...不管你提到它们。

注意:如果您的代码没有执行java.util.List或扩展java.util.AbstractList,那么它将不会被识别为List的子类。这可能会导致它失败(假设)测试,你的老师将用于标记。


我必须扩展或Java的API列表实现的东西与异常抛出该功能的工作?

这取决于什么为您分配的(完整)的要求说....

相关问题