java - How to make BlockingQueue to accept multiple types? -


i have class x, class y , class z. if x or y perform specific conditions, should put blockingqueue. class z takes them queue.

i know creating this:

blockingqueue<x,y> bqueue=new arrayblockingqueue<x,y>(length); 

is illegal. how make properly?

the simplest way allow blockingqueue accept object type:

blockingqueue<object> q = new arrayblockingqueue<>(length); 

then, on take() operation, of particular class object is:

object o = q.take(); if (o instanceof x) {     x x = (x) o;     // work x } else if (o instanceof y) {     y y = (y) o;     // work y } else {     // o neither x nor y } 

if x , y inherited common class or implement common interface, make queue more specific:

blockingqueue<xyinterface> q = new arrayblockingqueue<>(length); 

Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -