Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #28996

generic extends problem

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)

Show all headers | View raw


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


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