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)