如何从 BlockingQueue 的对象中获取数据?

How to take data from object from BlockingQueue?

我有 class 一个包含所有字段和 getter 的对象。现在,一个线程正在将一些数据放入其中,在我的例子中

object = new MyObject(int, int, char, int) 
queue.put(object);

然后放入BlockingQueue,然后第二个线程正在拿这个对象

MyObject toSolve = queue.take();

我的问题是如何从对象中获取数据以使用其整数进行操作。

你真的不是说你在使用 Object 吗?如果是,那么我猜您的问题是您将 YourClass 放入队列,但得到了 java.lang.Object

如果你看一下 BlockingQueue,你会发现它是通用的,所以写一些类似的东西(注意 <>

BlockingQueue bq = new BlockingQueue<YourClass>();
bq.put( new YourClass( 1 , 2 , 'a' , 42 ) );

然后

YourClass yq = bq.take();

在编译和功能方面都非常棒,您可以使用 yq 上的 getter 来获取您的 intchar

使用泛型,这就是它们的用途。

干杯,