![](/img/trans.png)
[英]How can I store all objects created in a class in a single array returned by that class in Java?
[英]How do I store multipule class objects in the same array in Java?
如果我在類DefaultItems中創建一個數組:
DefaultItems[] items = new DefaultItems[20];
我想將其用作5個不同類對象的存儲陣列。 我想存儲一個Car對象,Person對象和Pet對象。
DefaultItems[1] = Car Object;
DefaultItems[2] = Person Object;
這可能嗎?
如果Car
和Person
是從DefaultItems
派生的,那么您的代碼應該可以工作(假設輸入錯誤是固定的)。
如果這些類沒有任何關系,則可以使用Object[]
而不是DefaultItems[]
。 所有類均源自Object
。
確保從基類DefaultItems
擴展了所有5個對象,即Car
, Person
等。 一旦做到這一點,就可以實現您想要的。
即
public class Person extends DefaultItems {
//...
}
public class Car extends DefaultItems {
//...
}
然后
DefaultItems[] items = new DefaultItems[2];
DefaultItems[0] = new Person();
DefaultItems[1] = new Car();
Number
類及其子類的一個示例如下:
Number[] nums = new Number[3];
nums[0] = new Integer(0);
nums[1] = new Double(1.0);
nums[2] = new Float(0.5);
for(Number num: nums){
System.out.println(num);//<--prints the numbers
}
以一種類型安全的方式,即使您要存儲在數組中的所有對象共享一個共同的父類(從它們繼承),這也是可能的:
class Car extends MyObject {
...
}
class Person extends MyObject {
...
}
MyObject[] array = new MyObject[2];
array[0] = new Car();
array[1] = new Person();
但是在將它們添加到數組之后,就可以像MyObject實例一樣訪問它們了(除非您強制轉換了它們,必須避免),因此,如果MyObject類不提供公共接口,那么這將毫無意義。 最好使用組合物:
class MyClass {
Person person;
Car car;
..
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.