我正在构建一个数组,其中数组中的每个元素都是字符串的LinkedList。我必须使用以下实现:
构建一个包装LinkedList对象的类(并且还扩展给定的类),并使数组中的每个元素都是此类的实例。 我给了下面的课,我需要扩展(我不能改变,我必须使用):
public Class1{
java.util.Collection<java.lang.String> collection;
Class1(java.util.Collection<java.lang.String> collection){
this.collection = collection; }
public void add(String str) {
collection.add(str); }
和Class1有更多与Collection相关的方法(删除等)。我想创建一个扩展Class1的类,并包装一个LinkedList对象。我希望这门课程满足两个要求:
所以这就是我所做的:
public class Bucket extends Class1 {
LinkedList<String> linkedList;
Bucket(){
super(new LinkedList<String>()); }
public String getFirst(){
linkedList.getFirst(); } }
我有一个试图运行以下代码的主类
Bucket bucket = new Bucket();
bucket.add("5");
bucket.getFirst();
这属于bucket.getFirst()行,因为很明显Bucket类中的linkedList为null,它不是我发送给Class1的LinkedList对象,所以getFirst()方法在Bucket试图在null上运行。
我该如何解决这个问题?如何将发送到Class1的LinkedList连接到Bucket类中的LinkedList? 感谢您到目前为止的阅读。
答案 0 :(得分:2)
是的,在您当前的代码中,linkedList
类中的 Bucket
并未指向任何对象,因此它会抛出java.lang.NullPointerException
,因此要解决此问题,您可以按照以下方法:
基本上是LinkedList IS-A Collection,因此您可以简单地将collection
个对象(从超类Class1
)强制转换为linkedList
个对象和{ {1}}第一个元素如下所示:
return