ArrayBag的概念

时间:2015-07-18 19:44:31

标签: java autoboxing bag

我无法理解课堂幻灯片的一部分:

在ArrayBag中存储项目:
我们将项目存储在Object类型的数组中。

SELECT DISTINCT T2.* 
  FROM T2  
  JOIN T1
    ON T1.ID = T2.ID
  LEFT JOIN T1 AS T1NO 
    ON T1NO.NAME = T2.NAME 
 WHERE T1NO.NAME IS NULL 

由于多态性的强大功能,我们可以在items数组中存储任何类型的对象:

public class ArrayBag implements Bag {
    private Object[] items; 
    private int numItems; 
....
}  

ArrayBag是一种特定类型的对象还是只是一个Obj变量名? 为什么我们需要将3.1416转换为Double并添加新的?
(我知道代码可能只是bag.add(3.1416)而Java会为你自动代码,但我无法理解bag.add(new Double(3.1416))背后的含义。

1 个答案:

答案 0 :(得分:0)

  

ArrayBag是一种特定类型的对象,还是只是一个Obj变量   命名

ArrayBag既不是特定类型的对象,也不是 Obj变量,它实际上是

  

为什么我们需要将3.1416转换为Double并添加新的?

不,您无需明确地将double转换为AutoBoxing进入图片(Java 1.5及更高版本)并将double转换为Double,即从原始对象转换为对象。

  

我无法理解bag.add背后的含义(新的   双(3.1416)

bag实际上是ArrayBag的一个实例,add()是此类中定义的方法,它采用类型为Object的参数,可能会将其添加到items数组,它只是一个Object数组。