Java:使用对象扩展ArrayList

时间:2015-02-27 04:41:13

标签: java object arraylist extends

我在Java中扩展了ArrayList(没有实现接口)。我在函数中遇到错误:

 public void push(Object o) {
    add(o);
}

它说"方法add(E)在类型ArrayList< E>不适用于参数。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

这对我有用,我不确定你想用这个来实现什么。

public class MyList<E> extends ArrayList<E>{
     public void push(E o) {
            add(o);
        }
}

答案 1 :(得分:1)

正如@shikjohari所指出的,您需要指定如何扩展ArrayList。

您收到此错误的原因是您尝试将Object推送到期望获得E类型的ArrayList。因此,您需要明确地将o转换为E类型才能使其生效(当然,您需要确保o确实属于动态类型E之前你进行演员表演。)

假设E是在其他地方定义的类(这里它不代表泛型类型,否则,编译器应该给你另一个错误 - &#34; E无法解析为类型&#34;而是&#34;类型ArrayList&lt; E&gt;类型中的方法add(E)不适用于参数&#34;),您应该具有以下内容:

// This class is defined somewhere in your package
class E {

}

public class YourClass extends ArrayList<E> {   
    public void push(Object o) {
        if (o instanceof E) {
            add((E) o);
        }
    }
}