i creating typed interface defintion , want restrict possible values type parameter set of classes. these classes existing , not under control. also, not related each other through class hierarchy.
so, example, have 3 classes a, b, c. interface imyfancyinterface<t>
. how can restrict implementors of interface , make sure t either a, b, or c only? lot.
cheers,
martin
if a
, b
, c
have common super-type (let's it's called super
), do:
public interface imyfancyinterface<t extends super> { .. }
this way should implement interface type-parameter sub-type of super
, i.e. a
, b
or c
.
if, however, a
, b
, c
don't have common super-type, create marker interface (an interface no abstract methods) , make them implement it. example:
public interface marker { } public class implements marker { } public class b implements marker { } public class c implements marker { }
this way you'd able follow approach suggested:
public interface imyfancyinterface<t extends marker> { .. }
Comments
Post a Comment