gpt4 book ai didi

java - Java 类型、嵌套类的方法未定义

转载 作者:行者123 更新时间:2023-11-30 04:38:49 24 4
gpt4 key购买 nike

我在学校项目的嵌套类中遇到了一些麻烦。目前,我正在尝试编写一种方法将项目插入到不规则数组数据结构中。它使用由嵌套类创建的对象来跟踪二维数组位置,以便获取要插入的索引。但是,我收到错误“The method findEnd(E) is undefined for the type RaggedArrayList.ListLoc”:

insertLoc.findEnd(item)

我在 stackoverflow 和网络上进行了广泛的搜索,但尚未找到答案。如果我错过了它并且这是多余的(我知道有很多“类型问题未定义的方法”),那么我深表歉意。

这是相关>

ListLoc 对象的嵌套类:

private class ListLoc {
public int level1Index;
public int level2Index;

public ListLoc() {}

public ListLoc(int level1Index, int level2Index) {
this.level1Index = level1Index;
this.level2Index = level2Index;
}

public int getLevel1Index() {
return level1Index;
}

public int getLevel2Index() {
return level2Index;
}

// since only used internally, can trust it is comparing 2 ListLoc's
public boolean equals(Object otherObj) {
return (this == otherObj);
}
}

查找匹配项的最后一个索引的方法(不是 ListLoc 嵌套类的一部分):

private ListLoc findEnd(E item){
E itemAtIndex;

for (int i = topArray.length -1; i >= 0; i--) {
L2Array nextArray = (L2Array)topArray[i];

if (nextArray == null) {
continue;

} else {

for (int j = nextArray.items.length -1; j >= 0; j--) {
itemAtIndex = nextArray.items[j];
if (itemAtIndex.equals(item)) {
return new ListLoc(i, j+1);
}
}
}
}

return null;

}

尝试向不规则数组添加新值的方法:

boolean add(E item){
ListLoc insertLoc = new ListLoc();
insertLoc.findEnd(item);

int index1 = insertLoc.getLevel1Index();
int index2 = insertLoc.getLevel2Index();

L2Array insertArray = (L2Array)topArray[index1];
insertArray.items[index2] = item;

return true;

}

感谢您的任何意见。

最佳答案

我敢打赌,改变这一点:

ListLoc insertLoc = new ListLoc();
insertLoc.findEnd(item);

对此:

ListLoc insertLoc = findEnd(item);

将解决您的问题。

您尝试在 ListLoc 类上调用 findEnd,但如果您实际查看 ListLoc,它并未在那里定义。当您尝试对 insertLoc 对象调用 findEnd 时,会失败,因为 insertLocListLoc 的实例,它我们已经说过不包含 findEnd

话虽这么说,我敢打赌 findItem 实际上是在与 add 方法相同的类中声明的(我们将其称为 MyList),所以您想要实际调用 MyList.findEnd,而不是不存在的 ListLoc.findEnd

关于java - Java 类型、嵌套类的方法未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12786877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com