【问题标题】:How do I fix implementation error in JAVA VS code, "must implement the inherited abstract class"如何修复 JAVA VS 代码中的实现错误,“必须实现继承的抽象类”
【发布时间】:2020-11-14 22:17:52
【问题描述】:

我目前正在学习接口、类和泛型。

我目前的任务是创建一个模仿 Java 中“ArrayLists”的类。 (可能是java 7)

this is the interface

我创建了一个类:public class StudentArrayList implements SimpleArrayList<E> { 但我收到此错误:I am getting this error

错误:The type StudentArrayList must implement the inherited abstract method SimpleArrayList<E>.set(int, E)Java(67109264)

我已经实现了类中的所有函数签名,但仍然是我一次又一次地要求实现。 我该如何解决这个问题?请告诉我。 谢谢!

StudentArrayList.java:

public class StudentArrayList implements SimpleArrayList<E> {

    public static void main(String[] args) {
        System.out.println("Success");
    }

    @Override
    public int size() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public boolean isEmpty() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean contains(E o) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public E[] toArray() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void add(E e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void remove(E o) {
        // TODO Auto-generated method stub

    }

    @Override
    public boolean containsAll(SimpleArrayList<E> c) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean addAll(SimpleArrayList<E> c) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean addAll(int index, SimpleArrayList<E> c) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean removeAll(SimpleArrayList<E> c) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean retainAll(SimpleArrayList<E> c) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public void clear() {
        // TODO Auto-generated method stub

    }

    @Override
    public E get(int index) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void set(int index, E element) {
        // TODO Auto-generated method stub

    }

    @Override
    public void add(int index, E element) {
        // TODO Auto-generated method stub

    }

    @Override
    public void remove(int index) {
        // TODO Auto-generated method stub

    }

    @Override
    public int indexOf(E o) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public int lastIndexOf(E o) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public SimpleArrayList subList(int fromIndex, int toIndex) {
        // TODO Auto-generated method stub
        return null;
    }

}`

【问题讨论】:

  • MS Visual Code 很棒……但对于 Java,我强烈推荐 Eclipse(我的偏好)、NetBeans 或 IntelliJ 之类的 IDE。
  • IntellJ 由于某种原因无法在我的计算机上运行,​​我必须尽快提交此作业,所以我不能花时间安装/修复 IntellJ
  • 然后使用文本编辑器。 Sublime Text、Atom、Notepad++。

标签: java class generics arraylist interface


【解决方案1】:

您似乎正在尝试编写实现通用接口的通用类。问题是您实际上并没有将该类声明为泛型。因此编译器认为E 是一个类名。

声明:

public class StudentArrayList implements SimpleArrayList<E> {

应该是:

public class StudentArrayList<E> implements SimpleArrayList<E> {

StudentArrayList 之后的&lt;E&gt;E 声明为StudentArrayList 的类型参数。

编译错误可能是编译器认为E 是一个类名(而不是类型参数)而不是为它找到任何定义的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多