如何修复在JAVA VS code中的实现错误,”必须实现继承的抽象类”。

huangapple go评论107阅读模式
英文:

How do I fix implementation error in JAVA VS code, "must implement the inherited abstract class"

问题

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

我的当前任务是创建一个类,模拟 Java 中的 "ArrayLists"(可能是 Java 7)。

这是接口:1

我已经创建了一个类:

  1. public class StudentArrayList implements SimpleArrayList<E> {

但是我遇到了这个错误:我遇到了这个错误

错误:StudentArrayList 类必须实现继承的抽象方法 SimpleArrayList<E>.set(int, E)Java(67109264)

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

StudentArrayList.java:

  1. public class StudentArrayList implements SimpleArrayList<E> {
  2. public static void main(String[] args) {
  3. System.out.println("Success");
  4. }
  5. @Override
  6. public int size() {
  7. // TODO Auto-generated method stub
  8. return 0;
  9. }
  10. @Override
  11. public boolean isEmpty() {
  12. // TODO Auto-generated method stub
  13. return false;
  14. }
  15. // ... 其他函数实现 ...
  16. @Override
  17. public E get(int index) {
  18. // TODO Auto-generated method stub
  19. return null;
  20. }
  21. @Override
  22. public void set(int index, E element) {
  23. // TODO Auto-generated method stub
  24. }
  25. // ... 其他函数实现 ...
  26. }
英文:

I am currently learning interfaces, classes and generics.

My current assignment is to create a class which mimics "ArrayLists" in Java. (probably java 7)

this is the interface

I have created a class:
public class StudentArrayList implements SimpleArrayList&lt;E&gt; {

but I am getting this error: I am getting this error

Error: The type StudentArrayList must implement the inherited abstract method SimpleArrayList&lt;E&gt;.set(int, E)Java(67109264)

I have already implemented all the function signatures in the class, but it is still me asking to implement again and again.
How do I fix this issue? please let me know.
Thanks!

StudentArrayList.java:

  1. public class StudentArrayList implements SimpleArrayList&lt;E&gt; {
  2. public static void main(String[] args) {
  3. System.out.println(&quot;Success&quot;);
  4. }
  5. @Override
  6. public int size() {
  7. // TODO Auto-generated method stub
  8. return 0;
  9. }
  10. @Override
  11. public boolean isEmpty() {
  12. // TODO Auto-generated method stub
  13. return false;
  14. }
  15. @Override
  16. public boolean contains(E o) {
  17. // TODO Auto-generated method stub
  18. return false;
  19. }
  20. @Override
  21. public E[] toArray() {
  22. // TODO Auto-generated method stub
  23. return null;
  24. }
  25. @Override
  26. public void add(E e) {
  27. // TODO Auto-generated method stub
  28. }
  29. @Override
  30. public void remove(E o) {
  31. // TODO Auto-generated method stub
  32. }
  33. @Override
  34. public boolean containsAll(SimpleArrayList&lt;E&gt; c) {
  35. // TODO Auto-generated method stub
  36. return false;
  37. }
  38. @Override
  39. public boolean addAll(SimpleArrayList&lt;E&gt; c) {
  40. // TODO Auto-generated method stub
  41. return false;
  42. }
  43. @Override
  44. public boolean addAll(int index, SimpleArrayList&lt;E&gt; c) {
  45. // TODO Auto-generated method stub
  46. return false;
  47. }
  48. @Override
  49. public boolean removeAll(SimpleArrayList&lt;E&gt; c) {
  50. // TODO Auto-generated method stub
  51. return false;
  52. }
  53. @Override
  54. public boolean retainAll(SimpleArrayList&lt;E&gt; c) {
  55. // TODO Auto-generated method stub
  56. return false;
  57. }
  58. @Override
  59. public void clear() {
  60. // TODO Auto-generated method stub
  61. }
  62. @Override
  63. public E get(int index) {
  64. // TODO Auto-generated method stub
  65. return null;
  66. }
  67. @Override
  68. public void set(int index, E element) {
  69. // TODO Auto-generated method stub
  70. }
  71. @Override
  72. public void add(int index, E element) {
  73. // TODO Auto-generated method stub
  74. }
  75. @Override
  76. public void remove(int index) {
  77. // TODO Auto-generated method stub
  78. }
  79. @Override
  80. public int indexOf(E o) {
  81. // TODO Auto-generated method stub
  82. return 0;
  83. }
  84. @Override
  85. public int lastIndexOf(E o) {
  86. // TODO Auto-generated method stub
  87. return 0;
  88. }
  89. @Override
  90. public SimpleArrayList subList(int fromIndex, int toIndex) {
  91. // TODO Auto-generated method stub
  92. return null;
  93. }
  94. }`

答案1

得分: 1

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

原始声明:

  1. public class StudentArrayList implements SimpleArrayList&lt;E&gt; {

应改为:

  1. public class StudentArrayList&lt;E&gt; implements SimpleArrayList&lt;E&gt; {

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

编译错误可能是由于编译器错误地将 E 视为类名(而不是类型参数),并且无法找到任何关于它的定义。

英文:

You appear to be trying to write a generic class that implements an generic interface. The problem is that you have not actually declared the class as generic. And the compiler therefore things that E is a class name.

The declaration:

  1. public class StudentArrayList implements SimpleArrayList&lt;E&gt; {

should be:

  1. public class StudentArrayList&lt;E&gt; implements SimpleArrayList&lt;E&gt; {

The &lt;E&gt; after StudentArrayList declares E as a type parameter of StudentArrayList.

The compilation errors were probably a result of the compiler thinking that E was a class name (rather than a type parameter) and not being to find any definition for it.

huangapple
  • 本文由 发表于 2020年7月25日 11:05:33
  • 转载请务必保留本文链接:https://go.coder-hub.com/63083895.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定