Java多态性:如何使用子类来指示比较



介绍性问题即将到来!以下代码...

public class HelloWorld
{
  public static void main(String[] args)
  {
    ArrayList<Object> A = new ArrayList<Object>();
    Integer I = new Integer(3);
    Double D = new Double(3.14);
    A.add(I);
    A.add(D);
    if (A.get(0) > 2)
    {
        System.out.print("Hello World");      
    }  
  }
}

。编译失败

bad operand types for binary operator '>'
        if (A.get(0) > 2)
                     ^
  first type:  Object
  second type: int

我如何表明我希望与子类Integer进行比较,而不是与Object进行比较?

由于IntegerDouble都扩展Number然后将您的 ArrayList 重新定义为

ArrayList<Number> A = new ArrayList<Number>();

然后

if (A.get(0).intValue () > 2)

最新更新