code: public MapMaker expiration(long duration, TimeUnit unit) {
          if (expirationNanos != 0) {
              throw new IllegalStateException("expiration time of " + expirationNanos
                      + " ns was already set");
          }
          if (duration <= 0) {
              throw new IllegalArgumentException("invalid duration: " + duration);
          }
          this.expirationNanos = unit.toNanos(duration);
          useCustomMap = true;
          return this;
      }
docs: Specifies that each entry should be automatically removed from the map
  once a fixed duration has passed since the entry's creation.
  
  @param duration
  the length of time after an entry is created that it should be
  automatically removed
  @param unit
  the unit that {@code duration} is expressed in
  @throws IllegalArgumentException
  if {@code duration} is not positive
  @throws IllegalStateException
  if the expiration time was already set