java - toArray 方法在扩展 ArrayList<> 的类中不起作用

标签 java arrays arraylist extends

我有一个名为“Table”的类,它扩展了 ArrayList。在这个类中,我有一个名为 toArray() 的方法。每当我编译时,我都会收到错误:“Table 中的 toArray() 无法实现 java.util.List 中的 toArray() 返回类型 void 与 java.lang.Object[] 不兼容”

这是表类:

public class Table extends ArrayList<Row>
{
public ArrayList<String> applicants;
public String appArray[];
public String appArray2[] = {"hello", "world","hello","world","test"};

/**
 * Constructor for objects of class Table
 */
public Table()
{
    applicants = new ArrayList<String>();
}

public void addApplicant(String app)
{
    applicants.add(app);
    toArray();
}

public void toArray()
{
    int x = applicants.size();
    if (x == 0){ } else{
    appArray=applicants.toArray(new String[x]);}
}

public void list() //Lists the arrayList
{
    for (int i = 0; i<applicants.size(); i++)
    {
        System.out.println(applicants.get(i));
    }
}

public void listArray() //Lists the Array[]
{
    for(int i = 0; i<appArray.length; i++)
    {
        System.out.println(appArray[i]);
    }
}

}

如有任何建议,我们将不胜感激!

最佳答案

一般建议:不要从不适合客户端子类化的类进行扩展。 ArrayList 就是此类的一个示例。相反,定义您自己的类来实现 List 接口(interface)并包含 ArrayList 来重用其功能。这就是装饰器模式。

具体建议:toArrayArrayList 中定义的方法,您不能使用不同的返回类型覆盖它。

关于java - toArray 方法在扩展 ArrayList<> 的类中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15025313/

相关文章:

java - 123.12/23 需要正则表达式模式

arrays - 在matlab中的单元格数组中查找值(数组)

java - 我在这个 ArrayList 中做错了什么?

java - ArrayList 上的 MergeSort 仅适用于 ArrayList(Collection<? extends E> c) 而不是 ArrayList(int initialCapacity)?

java - 尝试从文件夹打印数组列表时出错

java - 如何在不使用 HashMap 或任何其他集合的情况下在 Java 中存储键值对?

java - 没有@Transactional的Hibernate sessionFactory.getCurrentSession()

java - 使用 gson 嵌套解析 Json

c++ - 关于 C++ 结构中数组的初学者问题

arrays - 是否可以在 VBA 中定义结构体或对象的数组?