java中一组长度数组的抽象方法?

jon*_*ney 1 java arrays abstract-class

我正在尝试创建一个抽象数组方法,指定数组的这个抽象对象只能容纳3个项目.

现在我已经尝试过这样的事情,public abstract BaseAdapter[3] adapters();但它抱怨一个错误,它不能这样做.

是他们的另一种方式还是我需要做的public abstract BaseAdapter[] adapters();

这样可以正常工作但是子类仍然可以传递大于3个项目的数组

aio*_*obe 5

你可以像这样解决它:

  • 创建一个createAdapters()以返回类型命名的抽象辅助方法(可以覆盖)BaseAdapter[]

    protected abstract BaseAdapter[] createAdapters();
    
    Run Code Online (Sandbox Code Playgroud)
  • 在您的超类中,您有一个执行以下操作的最终方法 adapters:

    public final BaseAdapter[] adapters() {
        BaseAdapter[] adapters = createAdapters();
        if (adapters.length != 3)
            throw new Exception("Error: Please return 3 adapters.");
        return adapters;
    }
    
    Run Code Online (Sandbox Code Playgroud)

另一种方法是创建一个名为BaseAdapterTriple(可能带有更具描述性的名称)的简单类,其中包含三个BaseAdapter,并将其用作返回值.