Jump to content

Inferring a redundant type parameter?


Recommended Posts

I have a class declared like this:


public class BaseBlockRenderer<BLOCK extends BaseBlock<TE>, TE extends TileEntity>
implements ISimpleBlockRenderingHandler
    BLOCK block;
    TE te;


where BaseBlock is declared as


public class BaseBlock<TE extends TileEntity> extends BlockContainer



This works, but it's a bit annoying that you have to specify the tile entity class explicitly when instantiating BaseBlockRenderer. Is there any way to arrange things so that the compiler can infer the TE parameter from the supplied block type? I.e. so that given


class MyBlock extends BaseBlock<MyTileEntity>


you can just write


instead of

BaseBlockRenderer<MyBlock, MyTileEntity>

, and still be able to declare things of type TE inside BaseBlockRenderer.


I've tried the following things, none of which work:


public class BaseBlockRenderer<BLOCK extends BaseBlock<TE extends TileEntity>>

  --- syntax error


public class BaseBlockRenderer<BLOCK extends BaseBlock<TE>>

  --- can't find name TE


<TE extends TileEntity> public class BaseBlockRenderer<BLOCK extends BaseBlock<TE>>

  --- syntax error


public <TE extends TileEntity> class BaseBlockRenderer<BLOCK extends BaseBlock<TE>>

  --- syntax error


public class <TE extends TileEntity> BaseBlockRenderer<BLOCK extends BaseBlock<TE>>

  --- syntax error


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...

Important Information

By using this site, you agree to our Terms of Use.