我正在创建一个列表数据结构,并且在实际使用它时遇到了泛型语法的问题。我要做的就是创建一个ArrayLinearList<String>
并且大小为2的实例,并在其中添加一些字符串。我一直试图弄清楚为什么将第一个插槽设置为&#34;一个&#34;是不正确的。这是错误和我的代码段。
myList[0] = "one";
错误消息为:错误:不兼容的类型:字符串无法转换为ArrayLinearList<String>
public class ArrayLinearList<E> implements LinearListADT<E> {
private Object[] array;
int currentSize = 0;
//Constructor (no arguments)
public ArrayLinearList() {
currentSize = 2;
// array = (ArrayLinearList[]) new Object[2]; //Start with a container of size 2
array = new Object[2];
}
public static void main(String[] var0) {
ArrayLinearList<String>[] myList;
myList = new ArrayLinearList[2];
myList[0] = "one";
}
}
我在使用java中的泛型语法时遇到了一些麻烦。在我看来,我有一个大小为2的数组,我将放置字符串。我稍后会添加更多方法,但我想了解为什么我的当前语法不正确将此字符串放在数组中。
答案 0 :(得分:1)
下面:
ArrayLinearList<String>[] myList;
您定义了一个包含ArrayLinearList<String>
元素的数组,而不是字符串,这就是您收到错误消息的原因。
答案 1 :(得分:1)
您的代码
ArrayLinearList<String>[] myList;
myList = new ArrayLinearList[2];//you have defining array myList of type ArrayLinearList
myList[0] = "one";//you are trying to store String to array which can hold ArrayLinearList
此处ArrayLinearList<String>
表示您的列表将包含String类型的值(前提是我们在代码中正确定义它)。但是ArrayLinearList<String>[]
将仅包含ArrayLinearList类型的引用,而不是String本身。
答案 2 :(得分:0)
您需要使用
myList.array[0] = "one";
因为myList
不是数组。它是用于存储数组的对象。