public static CacheStats of(@NonNegative long hitCount, @NonNegative long missCount,
      @NonNegative long loadSuccessCount, @NonNegative long loadFailureCount,
      @NonNegative long totalLoadTime, @NonNegative long evictionCount,
      @NonNegative long evictionWeight) {
    // Many parameters of the same type in a row is a bad thing, but this class is not constructed
    // by end users and is too fine-grained for a builder.
    return new CacheStats(hitCount, missCount, loadSuccessCount,
        loadFailureCount, totalLoadTime, evictionCount, evictionWeight);
  }
@Test(dataProvider = "badArgs")
  public void invalid(int hitCount, int missCount, int loadSuccessCount, int loadFailureCount,
      int totalLoadTime, int evictionCount, int evictionWeight) {
    assertThrows(IllegalArgumentException.class, () -> {
      CacheStats.of(hitCount, missCount, loadSuccessCount,
          loadFailureCount, totalLoadTime, evictionCount, evictionWeight);
    });
  }