java - Abstract class generic-through-constructor inheritance -
i'd model following, generic abstract class gets type constructor (ala arraylist())
public abstract class abstractparent<t> { protected abstractparent(t... params){ //(...) } } public child<u,v> extends abstractparent<????>{ public child(u param, v param2){ super(param, param2); } }
but canot use '?' or parent's t '????' type. want child<string,string>
abstractparent<string>
while child<string,integer>
abstractparent<? extends object>
,
...similarly how arrays.aslist()
method works: aslist("a","b")
returns list<string>
whereas aslist("a",1)
returns list<? extends object>
.
why disallowed or how can workaround it?
if want parent type of supertype of both u , v, you'll still have explicitly specify in child
's generic parameters. closest thing can class child<x, u extends x, v extends x> extends abstractparent<x>
.
you cannot automatically infer common supertype, seem alluding arrays.aslist
doing; can't @ type level.
Comments
Post a Comment