我有一个笼子课:

public class Cage<T extends Animal> {

    Cage(int capacity) throws CageException {
        if (capacity > 0) {
            this.capacity = capacity;
            this.arrayOfAnimals = (T[]) new Animal[capacity];
        }

        else {
            throw new CageException("Cage capacity must be integer greater than zero");
        }
    }
}

我试图在另一个类main方法中实例化Cage对象:
private Cage<Animal> animalCage = new Cage<Animal>(4);

我收到错误消息:“默认构造函数无法处理隐式超级构造函数引发的异常类型CageException。必须定义一个显式构造函数。”有任何想法吗? :o(

最佳答案

这意味着在另一个类的构造函数中,您正在创建Cage类,但是该构造函数未正确处理该异常。

因此,要么在其他构造函数中创建Cage类时捕获异常,要么使构造函数抛出CageException

09-06 00:06