B
- the common supertype that all entries must share; often this is
simply Object
@Beta public interface TypeToInstanceMap<B> extends Map<TypeToken<? extends B>,B>
TypeToken
to an instance of that type.
In addition to implementing Map
, the additional type-safe operations
putInstance(java.lang.Class<T>, T)
and getInstance(java.lang.Class<T>)
are available.
Generally, implementations don't support Map.put(K, V)
and Map.putAll(java.util.Map<? extends K, ? extends V>)
because there is no way to check an object at runtime to be an instance of a
TypeToken
. Instead, caller should use the type safe putInstance(java.lang.Class<T>, T)
.
Also, if caller suppresses unchecked warnings and passes in an Iterable<String>
for type Iterable<Integer>
, the map won't be able to detect and throw type error.
Like any other Map<Class, Object>
, this map may contain entries
for primitive types, and a primitive type and its corresponding wrapper type
may map to different values.
Modifier and Type | Method and Description |
---|---|
<T extends B> |
getInstance(Class<T> type)
Returns the value the specified class is mapped to, or
null if no
entry for this class is present. |
<T extends B> |
getInstance(TypeToken<T> type)
Returns the value the specified type is mapped to, or
null if no
entry for this type is present. |
<T extends B> |
putInstance(Class<T> type,
T value)
Maps the specified class to the specified value.
|
<T extends B> |
putInstance(TypeToken<T> type,
T value)
Maps the specified type to the specified value.
|
@Nullable <T extends B> T getInstance(Class<T> type)
null
if no
entry for this class is present. This will only return a value that was
bound to this specific class, not a value that may have been bound to a
subtype.
getInstance(Foo.class)
is equivalent to
getInstance(TypeToken.of(Foo.class))
.
@Nullable <T extends B> T putInstance(Class<T> type, @Nullable T value)
putInstance(Foo.class, foo)
is equivalent to
putInstance(TypeToken.of(Foo.class), foo)
.
null
),
or null
if there was no previous entry.@Nullable <T extends B> T getInstance(TypeToken<T> type)
null
if no
entry for this type is present. This will only return a value that was
bound to this specific type, not a value that may have been bound to a subtype.@Nullable <T extends B> T putInstance(TypeToken<T> type, @Nullable T value)
null
),
or null
if there was no previous entry.Copyright © 2010-2014. All Rights Reserved.