1

例如:

我有两种类型的对象:

public class Image {
...
}

public class Video {
...
}

我想要一个包含这两个对象的单个列表的类,如下所示:

public class Media {

private List<Object> mediaList = new....
....
}
4

2 回答 2

3

创建一个父类,并让 Image 和 Video 成为它的子类。

然后,您可以制作父类型的列表。

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 );
        }
    }
}
于 2012-04-25T15:24:58.577 回答
0

创建一个父类。

 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 不能被实例化。

于 2012-04-25T15:39:12.247 回答