我需要一个容器来跟踪一堆对象(public class Note
),而Stack
似乎非常适合我需要的东西。容器名为listOfNotes
。但是当我尝试将一个Note推入堆栈时:
listofNotes.push(Note0),
编译器给了我这个错误:
警告:[未选中]未选中调用push(E)作为原始类型Stack的成员。
这是否意味着堆栈无法保存对象,或者我使用命令“push”错误?
答案 0 :(得分:0)
您必须定义类型,例如
List<Node>
表示您要将此列表的类型定义为字符串。你可能想要
errElements = $(".error");
firstNode = $.ui.fancytree.getNode(errElements[0]);
或者你的课程叫什么。
答案 1 :(得分:0)
如果没有代码示例很难说,但这样的事情应该有效:
Stack stack = new Stack();
Note note = new Note();
stack.push(note);
您能提供更全面的代码示例吗?
答案 2 :(得分:0)
这只是警告(不是错误),一切都还可以。 您可以建议编译器忽略这种警告,例如在代码中使用注释@SuppressWarnings(“rawtypes”)。这样做,如果它 IS 对你好。在这种情况下,您可能需要在从Stack中弹出时进行强制转换,如:
Note note = (Note) listOfNotes.pop();
但是为了更好的风格和可用性,你应该考虑给容器(Stack)提供预期的类型(参见'Generics'):
package yourpackage;
import java.util.Stack;
public class Note {
public static void main(String[] a) {
Stack<Note> listOfNotes = new Stack<>();
listOfNotes.push(new Note());
}
}
因此,从堆栈中检索对象的代码就是:
Note note = listOfNotes.pop();