code: public ServiceCachingPolicy build() {
          checkState(_maxNumServiceInstances == -1 || _maxNumServiceInstancesPerEndPoint <= _maxNumServiceInstances);
  
          final int maxNumServiceInstances = _maxNumServiceInstances;
          final int maxNumServiceInstancesPerEndPoint = _maxNumServiceInstancesPerEndPoint;
          final long maxServiceInstanceIdleTimeNanos = _maxServiceInstanceIdleTimeNanos;
          final ExhaustionAction cacheExhaustionAction = _cacheExhaustionAction;
  
          return new ServiceCachingPolicy() {
              @Override
              public int getMaxNumServiceInstances() {
                  return maxNumServiceInstances;
              }
  
              @Override
              public int getMaxNumServiceInstancesPerEndPoint() {
                  return maxNumServiceInstancesPerEndPoint;
              }
  
              @Override
              public long getMaxServiceInstanceIdleTime(TimeUnit unit) {
                  return unit.convert(maxServiceInstanceIdleTimeNanos, TimeUnit.NANOSECONDS);
              }
  
              @Override
              public ExhaustionAction getCacheExhaustionAction() {
                  return cacheExhaustionAction;
              }
  
              @Override
              public boolean useMultiThreadedClientPolicy() {
                  return false;
              }
          };
      }
docs: Build the {@code ServiceCachingPolicy} specified by this builder.
  
  @return The {@code ServiceCachingPolicy} that was constructed.