如何从 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 来获取您的 int
和 char
。
使用泛型,这就是它们的用途。
干杯,
我有 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 来获取您的 int
和 char
。
使用泛型,这就是它们的用途。
干杯,