对于Java中的*****类型,方法*****是未定义的

Min*_*hen 3 java abstract-class

我试图从另一个包中的抽象类Sprite调用一个方法,但我得到了"方法getSymbol()未定义为Sprite类型"

这是代码.

这是来自另一个包精灵的代码

我想问题是抽象类中的方法无法实例化.

但我不知道如何解决它.

Jon*_*eet 10

这就是问题:

public class ArrayGrid<Sprite> implements Grid<Sprite>
Run Code Online (Sandbox Code Playgroud)

您声明类的方式Sprite是类型参数的名称.你已经把它变成了一个普通的类,我怀疑你不是故意的.在该类中,Sprite指的是类型参数,而不是类型 - 所以你可以有一个ArrayGrid<String>实现的Grid<String>......在这一点上你有一个字符串数组而不是一个精灵数组,所以难怪它getSymbol()不起作用,就像问题的一个症状一样.

我怀疑你只是想要:

public class ArrayGrid implements Grid<Sprite>
Run Code Online (Sandbox Code Playgroud)

那时,Sprite真的是指类型.这意味着您可以避免使用无法解决数组的代码,而只需编写:

this.grid = new Sprite[numRows][numColumns];
Run Code Online (Sandbox Code Playgroud)

然后没有必要压制警告:)