Top Description Methods
com.google.common.reflect

public Interface TypeToInstanceMap<B extends @Nullable Object>

extends Map<TypeToken<? extends @NonNull B extends @Nullable Object>, B extends @Nullable Object>
Known Direct Implementers
com.google.common.reflect.ImmutableTypeToInstanceMap, com.google.common.reflect.MutableTypeToInstanceMap
Annotations
@DoNotMock:Use ImmutableTypeToInstanceMap or MutableTypeToInstanceMap
@ElementTypesAreNonnullByDefault
Type Parameters
<B>
the common supertype that all entries must share; often this is simply Object
Imports
com.google.errorprone.annotations.CanIgnoreReturnValue, .DoNotMock, java.util.Map, javax.annotation.CheckForNull, org.checkerframework.checker.nullness.qual.NonNull, .Nullable

A map, each entry of which maps a TypeToken to an instance of that type. In addition to implementing Map, the additional type-safe operations putInstance and getInstance are available.

Generally, implementations don't support put and putAll 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.

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.

Author
Ben Yu
Since
13.0

Method Summary

Modifier and TypeMethod and Description
public <T extends @NonNull B> T
getInstance(Class<T> type)

Returns the value the specified class is mapped to, or null if no entry for this class is present.

public <T extends @NonNull B> T
getInstance(TypeToken<T> type)

Returns the value the specified type is mapped to, or null if no entry for this type is present.

public <T extends B> T

Returns:

the value previously associated with this class (possibly null), or null if there was no previous entry.
putInstance
(Class<@NonNull T> type, T value)

Maps the specified class to the specified value.

public <T extends B> T

Returns:

the value previously associated with this type (possibly null), or null if there was no previous entry.
putInstance
(TypeToken<@NonNull T> type, T value)

Maps the specified type to the specified value.

Inherited from java.util.Map:
clearcomputecomputeIfAbsentcomputeIfPresentcontainsKeycontainsValuecopyOfentryentrySetequalsforEachgetgetOrDefaulthashCodeisEmptykeySetmergeofofofofofofofofofofofofEntriesputputAllputIfAbsentremoveremovereplacereplacereplaceAllsizevalues

Method Detail

getInstanceback to summary
public <T extends @NonNull B> T getInstance(Class<T> type)

Returns the value the specified class is mapped to, or 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)).

Annotations
@CheckForNull
getInstanceback to summary
public <T extends @NonNull B> T getInstance(TypeToken<T> type)

Returns the value the specified type is mapped to, or 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.

Annotations
@CheckForNull
putInstanceback to summary
public <T extends B> T putInstance(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 to putInstance(TypeToken.of(Foo.class), foo).

Returns:T

the value previously associated with this class (possibly null), or null if there was no previous entry.

Annotations
@CanIgnoreReturnValue
@CheckForNull
putInstanceback to summary
public <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:T

the value previously associated with this type (possibly null), or null if there was no previous entry.

Annotations
@CanIgnoreReturnValue
@CheckForNull