如何传递 BlockingQueue?

How to pass BlockingQueue?

有两个class。一, X ,有它自己的 blockingQueue 和返回它的方法:

public int getQueue(){
    return TaskQueue;
}

但它似乎是 returns 队列的参考。我需要在其他 class Y 那里进行操作 x.getQueue().take(); 。那么有什么方法可以通过 getters / setters 传递队列吗?

public int getQueue()
{
    return TaskQueue;
}

您正在尝试将 TaskQueue class 作为 int 而不是您的 TaskQueue 对象返回。

我不知道你的代码结构如何,但这里有一个你想做的例子:

class X
{
    private BlockingQueue taskQueue;

    public X()
    {
        taskQueue = new BlockingQueue();
    }

    public BlockingQueue getQueue()
    {
        return taskQueue;
    }
}

你可以在任何其他地方使用它 class:

X myXClassObject = new X();

myXClassObject.getQueue().blockingQueueMethod();

或者更容易理解的方式:

X myXClassObject = new X();

BlockingQueue myQueue = myXClassObject.getQueue();

myQueue.blockingQueueMethod();
myQueue.take();