Interface ClassToInstanceMap<B>
-
- Type Parameters:
B
- the common supertype that all entries must share; often this is simplyObject
- All Known Implementing Classes:
ImmutableClassToInstanceMap
,MutableClassToInstanceMap
@DoNotMock("Use ImmutableClassToInstanceMap or MutableClassToInstanceMap") @GwtCompatible public interface ClassToInstanceMap<B> extends Map<Class<? extends B>,B>
A map, each entry of which maps a Java raw type 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.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
null
requires some explanation: From release 31.0 onward, Guava specifies the nullness of its types through annotations. In the case ofClassToInstanceMap
, it specifies that both the key and value types are restricted to non-nullable types. This specification is reasonable for keys, which must be non-null classes. This is in contrast to the specification for values: Null values are supported by the implementationMutableClassToInstanceMap
, even though that implementation and this interface specify otherwise. Thus, if you use a nullness checker, you can safely suppress any warnings it produces when you write null values into aMutableClassToInstanceMap
. Just be sure to be prepared for null values when reading from it, since nullness checkers will assume that vaules are non-null then, too.See the Guava User Guide article on
ClassToInstanceMap
.To map a generic type to an instance of that type, use
TypeToInstanceMap
instead.- Since:
- 2.0
- Author:
- Kevin Bourrillion
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T extends B>
TgetInstance(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(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, 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.
-
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.- Returns:
- the value previously associated with this class (possibly
null
), ornull
if there was no previous entry.
-
-