java - Static factory method with generics -


i have class enumconverter<t extends enum<?>> converts strings correct enum constant enum t (i can't use enum.valueof). construct instances of class in factory method this:

public static <t extends enum<?>> enumconverter<t> getinstance(class<t> enumclass) {     return new enumconverter<t>(enumclass.getenumconstants()); } 

this works, want cache enumconverter instances make sure there 1 per enum, i.e. map, , problem how declare map. closest have come this:

private static final map<class<?>, enumconverter<? extends enum<?>>> 

but error if try return value map factory method:

type mismatch: cannot convert enumconverter<capture#1-of ? extends enum<?>> enumconverter<t>

any ideas?

as want store different sub types in map, compiler can't know actual subtype receiving. think have add cast:

public static <t extends enum<?>> enumconverter<t> getinstance(class<t> enumclass) {     return (enumconverter<t>) cache.get(enumclass); } 

Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -