com.google.common.reflect

## Class ImmutableTypeToInstanceMap.Builder<B>

- java.lang.Object
- - com.google.common.reflect.ImmutableTypeToInstanceMap.Builder<B>

- Enclosing class:
    ImmutableTypeToInstanceMap<B>

      @Beta
      public static final class ImmutableTypeToInstanceMap.Builder<B>
      extends java.lang.Object

  A builder for creating immutable type-to-instance maps. Example:

         static final ImmutableTypeToInstanceMap<Handler<?>> HANDLERS =
             ImmutableTypeToInstanceMap.<Handler<?>>builder()
                 .put(new TypeToken<Handler<Foo>>() {}, new FooHandler())
                 .put(new TypeToken<Handler<Bar>>() {}, new SubBarHandler())
                 .build();

  After invoking `build()` it is still possible to add more entries and build again. Thus each map generated by this builder will be a superset of any map generated before it.

  Since:
    13.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ImmutableTypeToInstanceMap<B>` | `build()` Returns a new immutable type-to-instance map containing the entries provided to this builder.
    `<T extends B> ImmutableTypeToInstanceMap.Builder<B>` | `put(java.lang.Class<T> key, T value)` Associates `key` with `value` in the built map.
    `<T extends B> ImmutableTypeToInstanceMap.Builder<B>` | `put(TypeToken<T> key, T value)` Associates `key` with `value` in the built map.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### put

          public <T extends B> ImmutableTypeToInstanceMap.Builder<B> put(java.lang.Class<T> key,
                                                                T value)

      Associates `key` with `value` in the built map. Duplicate keys are not allowed, and will cause `build()` to fail.

    - #### put

          public <T extends B> ImmutableTypeToInstanceMap.Builder<B> put(TypeToken<T> key,
                                                                T value)

      Associates `key` with `value` in the built map. Duplicate keys are not allowed, and will cause `build()` to fail.

    - #### build

          public ImmutableTypeToInstanceMap<B> build()

      Returns a new immutable type-to-instance map containing the entries provided to this builder.
      Throws:
        `java.lang.IllegalArgumentException` - if duplicate keys were added