Java ArrayList如何处理unsupportedOperationException?
我被指派实现我自己的Arraylist和Linkedlist,其工作原理与Java在Java.util.*中提供的Arraylist和Linkedlist非常相似,但不是所有方法,而是其中的一些方法 任务描述如下: 因此,对于我不打算实现的每个方法,我都必须将上述代码实现到我的代码中。然而,我的源代码在没有实现上述内容的情况下运行良好。我只是没有提到那些我没有被指派去实现的方法 我的问题是,我想知道为什么我的代码在任务描述中没有提到上述要求就可以正常工作。我怎样才能让上面的函数在代码中抛出新的异常呢?(以满足该转让要求) 以下是我当前的类声明:Java ArrayList如何处理unsupportedOperationException?,java,list,arraylist,linked-list,implements,Java,List,Arraylist,Linked List,Implements,我被指派实现我自己的Arraylist和Linkedlist,其工作原理与Java在Java.util.*中提供的Arraylist和Linkedlist非常相似,但不是所有方法,而是其中的一些方法 任务描述如下: 因此,对于我不打算实现的每个方法,我都必须将上述代码实现到我的代码中。然而,我的源代码在没有实现上述内容的情况下运行良好。我只是没有提到那些我没有被指派去实现的方法 我的问题是,我想知道为什么我的代码在任务描述中没有提到上述要求就可以正常工作。我怎样才能让上面的函数在代码中抛出新的
public class A1ArrayList<E>
{
...
}
公共类A1ArrayList
{
...
}
我是否必须扩展或实现Java的list API中的某些内容才能使用异常抛出功能?是的,您需要实现
list
接口
public class A1ArrayList<E> implements List<E>
{
...
}
公共类A1ArrayList实现列表
{
...
}
当您实现或扩展接口/类时,通常会使用UnsupportedOperationException
,该接口/类会强制您实现不希望提供实现的给定方法。使用exception而不是empty方法更好的原因是,当它被另一个不打算调用它的代码调用时,您可以立即看到它
在您的情况下,如果您没有实现List(或任何其他接口)接口,则不需要提供任何需要抛出UnsupportedOperationException
的方法
更新
如果您真的需要使类成为Java
列表
,那么您可以扩展抽象列表
,而不是实现列表。您要抛出不支持操作异常
这一事实意味着您的类应该实现Java.util.List
或扩展java.util.AbstractList
。(再次检查要求!)
如果您这样做,您会发现列表中的所有方法都必须实现。。。不管你提到与否
注意:如果您的代码既没有实现java.util.List
也没有扩展java.util.AbstractList
,那么它将不会被识别为List
的子类。这可能会导致你的老师用来评分的(假设性)考试不及格
我是否必须扩展或实现Java的list API中的某些内容才能使用异常抛出功能
这取决于作业的(完整)要求是什么…尝试公共类A1ArrayList实现列表{…
。您可以在任何地方抛出未检查的异常