Jump to content

Inferring a redundant type parameter?


gcewing

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

BaseBlockRenderer<MyBlock>

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.

Guest
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.