### Question:
GuavaLoadingCache implements GuavaCache<K, V> { @SuppressWarnings("unchecked") public static <K, V> GuavaLoadingCache<K,V> permanent(String name, CacheLoader<K, V> loader) { return new GuavaLoadingCache(name,CacheBuilder.newBuilder(),loader); } private  GuavaLoadingCache(String name, CacheBuilder<K, V> bldr, CacheLoader<K, V> loader); @SuppressWarnings("unchecked") static GuavaLoadingCache<K,V> nonCaching(String name, CacheLoader<K, V> loader); @SuppressWarnings("unchecked") static GuavaLoadingCache<K,V> permanent(String name, CacheLoader<K, V> loader); @SuppressWarnings("unchecked") static GuavaLoadingCache<K,V> fromSpec(String name, CacheBuilderSpec spec, CacheLoader<K, V> loader); @SuppressWarnings("unchecked") static GuavaLoadingCache<K,V> fromSpec(String name, String spec, CacheLoader<K, V> loader); @Override LoadingCache<K, V> getGuava(); @Override void put(K key, V value); @Override V get(K key); @Override V getIfPresent(K key); @Override void refresh(K key); @Override void remove(K key); @Override void clear(); @Override String getCacheName(); @Override void putAll(Map<K, V> map); @Override int getSize(); @Override void cleanUp(); @Override ConcurrentMap<K,V> asMap(); @Override ImmutableMap<K,V> getAllPresent(Iterable<?> keys); @Override CacheStats getStats(); @Override V get(K key, Callable<? extends V> valueLoader); @Override ImmutableMap<K, V> getAll(Iterable<? extends K> keys);  }### Answer:
@Test public void testPermanent() throws Exception { System.out.println("SupplierCache.nonCaching"); String KEY = "abc"; TestLoader loader = new TestLoader(); GuavaLoadingCache<String,Integer> cache = GuavaLoadingCache.permanent("Blah",loader); assertEquals(0, loader.count); assertNotNull(cache.get(KEY)); assertEquals(1, loader.count); assertNotNull(cache.get(KEY)); assertEquals(1, loader.count); cache.clear(); assertNotNull(cache.get(KEY)); assertEquals(2, loader.count); assertNotNull(cache.get(KEY)); assertEquals(2, loader.count); }