【问题标题】:found...object but expected myClass error using a Java Stack使用 Java 堆栈找到...对象但预期 myClass 错误
【发布时间】:2012-07-21 06:00:38
【问题描述】:

当我尝试以这种形式编译代码时,会生成编译错误“不兼容的类型 - 找到 java.lang.Object 但预期的 E”:

public class E {
    private int x;       

    public E {
        x = 0;
    }
}

public class Class {
    private E o;
    private E b;
    private Stack stack = new Stack();

    public void foo() {
        stack.push(o);
    }

    public void bar() {
        **b = stack.pop();**
    }
}

【问题讨论】:

    标签: java class object stack


    【解决方案1】:

    你可以声明堆栈包含Es:

    private Stack<E> stack = new Stack<E>();
    

    【讨论】:

      【解决方案2】:

      尝试转换为 E。

      public void bar() {
          b = (E)stack.pop();
      }
      

      【讨论】:

      • 谢谢,我是Java新手,这是正确的实现方式吗?没有?这样是不是让Stack可以存储多种类型?
      • 是的,您可以按照 Arne 的建议进行操作。
      猜你喜欢
      • 2018-10-22
      • 2021-10-24
      • 1970-01-01
      • 2021-06-03
      • 2011-03-27
      • 2013-10-03
      • 2018-09-21
      • 1970-01-01
      • 2011-10-06
      相关资源
      最近更新 更多