B
- the common supertype that all entries must share; often this is simply Object
public interface ClassToInstanceMap<B>
extends java.util.Map<java.lang.Class<? extends B>,B>
Map
, the additional type-safe
operations putInstance(java.lang.Class<T>, T)
and getInstance(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 of ClassToInstanceMap
, 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 implementation MutableClassToInstanceMap
, 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 a MutableClassToInstanceMap
. 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.
Modifier and Type | Method and Description |
---|---|
<T extends B> |
getInstance(java.lang.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> |
putInstance(java.lang.Class<T> type,
T value)
Maps the specified class to the specified value.
|
@CheckForNull <T extends B> T getInstance(java.lang.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.@CheckForNull <T extends B> T putInstance(java.lang.Class<T> type, T value)
null
), or null
if there was no previous entry.