Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #28996
| From | Philipp Kraus <philipp.kraus@flashpixx.de> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | generic extends problem |
| Date | 2014-07-08 08:24 +0200 |
| Organization | Clausthal University of Technology |
| Message-ID | <lpg2q5$2ued$1@ariadne.rz.tu-clausthal.de> (permalink) |
Hello,
I have got a complex class structure, the signature of the class is:
public abstract class IMultiLayer<T extends IStepable & Painter>
extends CompoundPainter<T> implements IQueue<T>, IViewableLayer,
IDataLayer, IVoidStepable, ILayer
The interfaces are defined like
interface IDataLayer;
interface IStepable;
interface IViewableLayer;
interface IVoidStepable extends IStepable;
interface IReturnStepable extends IStepable;
interface ILayer extends IStepable;
interface IQueue<T> extends Queue<T>
I create classes with
public class myContent implements IStepable, Painter
public class myLayer extends IMultiLayer<myContent>
I can compile the structure with Java 1.8, but I get an
ClassCastException. I have defined a Map
with
Map<String, ILayer> x = new Map();
x.put( "test", new myLayer )
(myLayer) x.get("test"); // the exception is raised on the cast
The message text of the exception is: cannot be cast to IStepable.
I don't understand way the exception is thrown, because the class
implements the correct interface.
If I swap T extends IStepable & Painter to T extends Painter &
IStepable, I get the same exception with
cannot be cast to Painter
I'm a little bite clueless and need a hint to solve the problem
Thanks
Phil
Back to comp.lang.java.programmer | Previous | Next — Next in thread | Find similar | Unroll thread
generic extends problem Philipp Kraus <philipp.kraus@flashpixx.de> - 2014-07-08 08:24 +0200
Re: generic extends problem Eric Sosman <esosman@comcast-dot-net.invalid> - 2014-07-08 08:22 -0400
Re: generic extends problem Philipp Kraus <philipp.kraus@flashpixx.de> - 2014-07-22 14:54 +0200
csiph-web