java - 为什么 int 作为对象传递?

标签 java object arraylist java-7

import java.util.ArrayList;

class Stack {
    private ArrayList stack;
    private int pos;

    Stack() {
        stack = new ArrayList();
        pos = -1;
    }
    int pop() {
        if(pos < 0) {
             System.out.println("Stack underflow.");
             return 0;
        }
        int out = stack.get(pos);
        stack.remove(pos);
        pos--;
        return out;
    }
}

我正在尝试编写一个基本的可变长度堆栈,这是我的代码片段。当我运行这个时,我收到一个错误:

Main.java:16: error: incompatible types
   int out = stack.get(pos);
                       ^
required: int
found:    Object

为什么将其作为对象传递?

最佳答案

目前,您没有定义 ArrayList 中名为 stack 的泛型类型,因此您将从 获得原始 Object 返回类型ArrayList.get:

您需要更换

ArrayList stack;

ArrayList<Integer> stack;

类似

stack = new ArrayList();

stack = new ArrayList<Integer>(); // new ArrayList<>(); for Java 7

另请参阅使用java.util.Stack

关于java - 为什么 int 作为对象传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149515/

相关文章:

java - Spring 的正确版本或 jackson 是什么?

java - 仅选择查询中的 SQLite java.lang.NullPointerException

java - 如何从 vector 中取出一个对象作为它的原始类?

java - 删除内容并显示JAVA中的所有内容

java - 我的对象 ArrayList 没有打印出我想要的对象属性

java - 如何为每个唯一值选择 1 个?

java - Bean创建异常: Error creating bean with name servletContainer

javascript - JS |当并非所有属性都存在时,按属性对对象数组进行排序

javascript从子级调用父级方法

java - 搜索 ArrayList 的 ArrayList