2

ThreadPoolExecutorこのコードで新しいJavaをインスタンス化したいと思います。

public class ImageList {
    private LinkedBlockingQueue<Image> list;
    private final ThreadPoolExecutor executor;

    public ImageList() {
        executor = new ThreadPoolExecutor(2, 4, 100, TimeUnit.SECONDS, list);
    }
}

Image次のヘッダーはどこにありますか。

public class Image implements Runnable, Serializable

BlockingQueue<Runnable>ただし、Javaは、型のコンストラクターが見つからなかったと文句を言います。私は何が間違っているのですか?

4

1 に答える 1

4

コンストラクターはを期待しBlockingQueue<Runnable>ます。あなたはそれに合格しますBlockingQueue<Image>

ABlockingQueue<Image>はではありませんBlockingQueue<Runnable>。実際、任意の種類のRunnableをに格納できますが、インスタンスはにBlockingQueue<Runnable>のみ格納できます。ImageBlockingQueue<Image>

もしそうなら、あなたは次のことをすることができます:

BlockingQueue<Image> list = new BlockingQueue<Image>();
BlockingQueue<Runnable> list2 = list1;
list2.add(new Runnable() {...});

そしてブーム!BlockingQueue<Image>以外のものが含まれますImage

于 2012-07-13T14:55:00.897 に答える