Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java多态性:如何指示应该使用子类进行比较?_Java_Oop_Object_Polymorphism - Fatal编程技术网

Java多态性:如何指示应该使用子类进行比较?

Java多态性:如何指示应该使用子类进行比较?,java,oop,object,polymorphism,Java,Oop,Object,Polymorphism,介绍性问题!下面的代码 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

介绍性问题!下面的代码

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");      
    }  
  }
}

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

作为
Integer
Double
扩展
编号
,然后将您的ArrayList重新定义为

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

作为
Integer
Double
扩展
Number
,然后将数组列表重新定义为

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

将其强制转换为
Integer
?由于您将
ArrayList
声明为保持type
对象
,并且
运算符不适用于
对象
,这是正常的。泛型是编译器关于类型的断言。如果不声明支持所需操作的类型,则这些操作将失败。将其强制转换为
Integer
?因为您将
数组列表
声明为保持type
对象
,并且
运算符不应用于
对象
,这是正常的。泛型是编译器关于类型的断言。如果不声明支持所需操作的类型,则这些操作将失败。
a.get(0)。doubleValue()
更好。
a.get(0)。doubleValue()
更好。
if (A.get(0).intValue () > 2)