1

例えば:

私は2種類のオブジェクトを持っています:

public class Image {
...
}

public class Video {
...
}

次のように、これら 2 つのオブジェクトの単一のリストを含むクラスが必要です。

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 に答える