- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我无法理解类幻灯片的一部分:
将项目存储在 ArrayBag 中:
我们将项目存储在对象类型的数组中。
public class ArrayBag implements Bag {
private Object[] items;
private int numItems;
....
}
由于多态性的力量,这允许我们在 items 数组中存储任何类型的对象:
ArrayBag bag = new ArrayBag();
bag.add("hello");
bag.add(new Double(3.1416));
ArrayBag 是一个特定类型的对象还是只是一个 Obj 变量名称?
为什么我们需要将 3.1416 转换为 Double 并添加新的?
(我知道代码可能只是 bag.add(3.1416) 并且 Java 会为你自动装箱它,但我很难理解 bag.add(new Double(3.1416)) 背后的含义。
最佳答案
Is ArrayBag a specific type of object or is it just a Obj variable name?
ArrayBag
既不是特定类型的对象,也不是Obj 变量,它实际上是一个类。
Why do we need to cast 3.1416 as a Double and add a new?
不,当 AutoBoxing
出现时(Java 1.5 及更高版本),您不需要显式转换 double
并将 double
转换为 Double
即从原始类型到对象。
I'm having trouble understanding the meaning behind bag.add(new Double(3.1416)
bag
实际上是 ArrayBag
的实例,而 add()
是此类中定义的方法,它采用 Object
类型的参数,并可能将其添加到 items
数组中,该数组只不过是一个 Object
数组。
关于java - ArrayBag的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31494919/
我目前正在学习 Java 中的不同 DataStructures,其中一种是 Array Bags 和 Linked Bags。我理解数据结构如此重要的原因,以及泛型如何让我们更轻松地以统一的方式处理
我是一名优秀的程序员,十分优秀!