我正在创建一个程序,用于添加一个单词(包括其含义)并删除该单词。换句话说,就是一本字典。我对这种特定方法有疑问。
public void insert(WordMeaning w1) {
WordMeaningNode current = list;
WordMeaningNode back = null;
WordMeaningNode temp = new WordMeaningNode(w1);
try {
boolean found = false;
while (current != null && !found) {
if (temp.w1.getWord().compareToIgnoreCase(current.w1.getWord()) <= 0) {
found = true;
} else {
back = current;
current = current.next;
}
}
temp.setNode(current);
if (back == null) {
list = temp;
} else {
back.setNode(temp);
}
} catch (NullPointerException e) {
}
}
现在一切工作正常,只是该方法没有在“if (temp.w1....)”行及其他行上检测到“w1”。 WordMeaning w1 调用两个字符串,给出单词的名称及其定义。
我的第一个想法是我将 WordMeaningNode temp 放置在无法检测到 w1 的位置,但我不再确定。
最佳答案
我的猜测是 WordMeaningNode 没有名为 w1
的成员。
将 w1
替换为类型为 WordMeaning
的成员名称(WordMeaningNode
)。
如果你的类(class)是:
public class WordMeaningNode {
public WordMeaningNode(WordMeaning meaning) {
this.meaning = meaning;
public WordMeaning meaning;
}
你应该输入:
temp.meaning.getWord().compareToIgnoreCase(current.meaning.getWord()) <= 0
// ------- -------
传递给构造函数的变量名称无关。
关于java - 程序在我的方法之一中找不到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27073036/