Interface TypeToInstanceMap<B>
- 
- 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 Map<TypeToken<? extends B>,B>
A map, each entry of which maps aTypeTokento 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.This class's support for
nullrequires some explanation. For details, seeClassToInstanceMap. Its explanation applies equally well toTypeToInstanceMap.- Since:
 - 13.0
 - Author:
 - Ben Yu
 
 
- 
- 
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T extends B>
TgetInstance(TypeToken<T> type)Returns the value the specified type is mapped to, ornullif no entry for this type is present.<T extends B>
TgetInstance(Class<T> type)Returns the value the specified class is mapped to, ornullif no entry for this class is present.<T extends B>
TputInstance(TypeToken<T> type, T value)Maps the specified type to the specified value.<T extends B>
TputInstance(Class<T> type, T value)Maps the specified class to the specified value.- 
Methods inherited from interface java.util.Map
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 
 - 
 
 - 
 
- 
- 
Method Detail
- 
getInstance
@CheckForNull <T extends B> T getInstance(Class<T> type)
Returns the value the specified class is mapped to, ornullif 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 B> T getInstance(TypeToken<T> type)
Returns the value the specified type is mapped to, ornullif 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(Class<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), ornullif there was no previous entry. 
 
- 
putInstance
@CanIgnoreReturnValue @CheckForNull <T extends B> T putInstance(TypeToken<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), ornullif there was no previous entry. 
 
 - 
 
 -