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.
|
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
@NullableDecl <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))
.
@NullableDecl <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.@NullableDecl @CanIgnoreReturnValue <T extends B> T putInstance(Class<T> type, @NullableDecl T value)
putInstance(Foo.class, foo)
is equivalent to putInstance(TypeToken.of(Foo.class), foo)
.
null
), or null
if there was no previous entry.@NullableDecl @CanIgnoreReturnValue <T extends B> T putInstance(TypeToken<T> type, @NullableDecl T value)
null
), or null
if there was no previous entry.Copyright © 2010–2018. All rights reserved.