Interface TypeToInstanceMap<B extends @Nullable java.lang.Object>
-
- Type Parameters:
B
- the common supertype that all entries must share; often this is simplyObject
- All Known Implementing Classes:
ImmutableTypeToInstanceMap
,MutableTypeToInstanceMap
@DoNotMock("Use ImmutableTypeToInstanceMap or MutableTypeToInstanceMap") public interface TypeToInstanceMap<B extends @Nullable java.lang.Object> extends java.util.Map<TypeToken<? extends @NonNull B>,B>
A map, each entry of which maps aTypeToken
to an instance of that type. In addition to implementingMap
, the additional type-safe operationsputInstance(java.lang.Class<T>, T)
andgetInstance(java.lang.Class<T>)
are available.Generally, implementations don't support
Map.put(K, V)
andMap.putAll(java.util.Map<? extends K, ? extends V>)
because there is no way to check an object at runtime to be an instance of aTypeToken
. Instead, caller should use the type safeputInstance(java.lang.Class<T>, T)
.Also, if caller suppresses unchecked warnings and passes in an
Iterable<String>
for typeIterable<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.- Since:
- 13.0
- Author:
- Ben Yu
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T extends @NonNull B>
TgetInstance(TypeToken<T> type)
Returns the value the specified type is mapped to, ornull
if no entry for this type is present.<T extends @NonNull B>
TgetInstance(java.lang.Class<T> type)
Returns the value the specified class is mapped to, ornull
if no entry for this class is present.<T extends B>
TputInstance(TypeToken<@NonNull T> type, T value)
Maps the specified type to the specified value.<T extends B>
TputInstance(java.lang.Class<@NonNull T> type, T value)
Maps the specified class to the specified value.
-
-
-
Method Detail
-
getInstance
@CheckForNull <T extends @NonNull B> T getInstance(java.lang.Class<T> type)
Returns the value the specified class is mapped to, ornull
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 togetInstance(TypeToken.of(Foo.class))
.
-
getInstance
@CheckForNull <T extends @NonNull B> T getInstance(TypeToken<T> type)
Returns the value the specified type is mapped to, ornull
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.
-
putInstance
@CanIgnoreReturnValue @CheckForNull <T extends B> T putInstance(java.lang.Class<@NonNull T> type, T value)
Maps the specified class to the specified value. Does not associate this value with any of the class's supertypes.putInstance(Foo.class, foo)
is equivalent toputInstance(TypeToken.of(Foo.class), foo)
.- Returns:
- the value previously associated with this class (possibly
null
), ornull
if there was no previous entry.
-
putInstance
@CanIgnoreReturnValue @CheckForNull <T extends B> T putInstance(TypeToken<@NonNull T> type, T value)
Maps the specified type to the specified value. Does not associate this value with any of the type's supertypes.- Returns:
- the value previously associated with this type (possibly
null
), ornull
if there was no previous entry.
-
-