。例如:如何創建類,即中有一個列表,該列表應該包含兩個不同類型的對象
我有兩個類型的對象:
public class Image {
...
}
而且
public class Video {
...
}
我想要一個類將包含這兩個對象的單個列表,如下所示:
public class Media {
private List<Object> mediaList = new....
....
}
。例如:如何創建類,即中有一個列表,該列表應該包含兩個不同類型的對象
我有兩個類型的對象:
public class Image {
...
}
而且
public class Video {
...
}
我想要一個類將包含這兩個對象的單個列表,如下所示:
public class Media {
private List<Object> mediaList = new....
....
}
創建一個父類,並讓圖像和視頻成爲它的子項。
然後,您可以創建父類型的列表。
import java.util.ArrayList;
import java.util.List;
public class Example
{
public abstract ImageVideo
{
}
public class Image extends ImageVideo
{
}
public class Video extends ImageVideo
{
}
public static class Media
{
public static void main(String args[])
{
Image image = new Example().new Image();
Video video = new Example().new Video();
List<ImageVideo> mediaList = new ArrayList<ImageVideo>();
mediaList.add(image);
mediaList.add(video);
}
}
}
另外,下面的代碼編譯時,當您從列表中檢索對象時,您只需將對象轉換回來。
import java.util.ArrayList;
import java.util.List;
public class Example
{
public class Image
{
}
public class Video
{
}
public static class Media
{
public static void main(String args[])
{
Image image = new Example().new Image();
Video video = new Example().new Video();
List<Object> mediaList = new ArrayList<Object>();
mediaList.add(image);
mediaList.add(video);
}
}
}
另一種選擇是創建一個接口。 '實現MediaType'。 – user717572 2012-04-25 15:29:05
謝謝你非常清楚的解釋。它像魅力:) – aki 2012-04-25 18:07:24
創建一個父類。
public abstract Class MediaFormat{
}
,然後子類
public class Image extends MediaFormat{
...
}
public class Video extends MediaFormat{
...
}
然後最後
public class Media {
private List<MediaFormat> mediaList = new List<MediaFormat>();
...
}
父類(MediaFormat)爲您確保MediaFormat不能被實例化abstract.That方式。
也謝謝你的解釋。 – aki 2012-04-25 18:07:46
您可以將媒體制作爲圖像和視頻的父類,然後您可以製作一個容器類,其中包含一個List集合。 –
scrappedcola
2012-04-25 15:26:25