堆栈和对象(公共类)

时间:2015-09-23 20:25:52

标签: java

我需要一个容器来跟踪一堆对象(public class Note),而Stack似乎非常适合我需要的东西。容器名为listOfNotes。但是当我尝试将一个Note推入堆栈时:

listofNotes.push(Note0),

编译器给了我这个错误:

  

警告:[未选中]未选中调用push(E)作为原始类型Stack的成员。

这是否意味着堆栈无法保存对象,或者我使用命令“push”错误?

3 个答案:

答案 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();