On 9 August 2010 23:44, James Carman <[email protected]> wrote:
> On Mon, Aug 9, 2010 at 7:32 AM, sebb <[email protected]> wrote:
>> Why not split the code into two methods:
>>
>> public static <K,V> Map<K, V> toMap(Map.Entry<K,V>[] array)
>> and
>> public static <K,V> Map<K, V> toMap(Class<K> keyType, Class<V>
>> valueType, Object[][] array)
>>
>
> So, what would that make the "user" code look like? The whole reason
> for this, unless I'm mistaken, was to make it easy to do stuff like:
>
> public static final Map<String,Color> COLOR_MAP = ArrayUtils.toMap(new
> Object[][] {
> { "red", Color.red },
> { "blue", Color.blue }
> } );
>
> To me, we're really trying to make it easier to use this API, right?
> So, now the code would look like:
>
> public static final Map<String,Color> COLOR_MAP =
> ArrayUtils.toMap(String.class, Color.class, new Object[][] {
> { "red", Color.red },
> { "blue", Color.blue }
> } );
>
Looks OK to me, and solves the type-safety problem.
> This is one of the big gripes about how generics are handled in Java,
> you have to repeat yourself so darn much. What if we told folks to
> use a new MapBuilder instead?
>
> public static final Map<String,Color> COLOR_MAP =
> MapUtils.builder().put("red", Color.red).put("blue",
> Color.blue).toMap();
>
> It seems like this "builder" stuff is getting popular these days.
> What do you guys think?
AFAICT, that does not ensure type-safety, so is no better than the current API.
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]