创建该类的空对象的默认构造函数

时间:2019-10-14 18:47:41

标签: java inheritance arraylist constructor

我在理解为何无法解决问题以及如何解决问题时遇到了问题。我正在尝试在构造函数中创建一个空的restaurantlist对象。

这是下面的问题:

RestaurantList类应用于存储所有Restaurant对象。此类应继承自LinkedList < 餐厅>类。 该类需要提供一个默认的构造函数,该构造函数创建一个空的RestaurantList对象。

public class RestaurantList extends LinkedList<Restaurant> {

    //Default constructor
    public RestaurantList() {
        RestaurantList rList = new RestaurantList();
    }

Exception in thread "main" java.lang.StackOverflowError

5 个答案:

答案 0 :(得分:0)

您正在ResturantList的构造函数中调用RestaurantList的构造函数。最终将导致对此构造函数的无限调用。

答案 1 :(得分:0)

构造函数在构造函数中引用自己。

一个空的构造函数将返回一个空的RestaurantList对象。

public RestaurantList() {}

答案 2 :(得分:0)

您正在递归调用构造函数内部的构造函数。每次执行此操作时,您都将创建一个新的堆栈框架,并且由于堆栈不是无止境的,而代码却是无限的,最终会导致堆栈溢出。

在构造函数内部调用new RestaurantList()是没有意义的。也许您打算使用super()调用父构造函数?

答案 3 :(得分:0)

只需为RestaurantList()提供一个空白/空构造函数。您的实现当前是递归的。因此,stackoverflow!

感谢您有机会在Stackoverflow中回答有关stackoverflow的问题:-)

答案 4 :(得分:0)

您还可以执行静态方法来提供实例。


   public class MyClass {
      ..
      ..
      public static MyClass getInstance() {
           return new MyClass();
      }
   }

您可以这样称呼它:

     MyClass mc = MyClass.getInstance();