public V get(K key) {
		lock.readLock().lock();
		try {
			return rawMap.get(MutableObj.of(key));
		} finally {
			lock.readLock().unlock();
		}
	}
@Test
	public void getTest(){
		final SimpleCache<String, String> cache = new SimpleCache<>();
		cache.put("key1", "value1");
		cache.get("key1");
		cache.put("key2", "value2");
		cache.get("key2");
		cache.put("key3", "value3");
		cache.get("key3");
		cache.put("key4", "value4");
		cache.get("key4");
		cache.get("key5", ()->"value5");

		assertEquals("value1", cache.get("key1"));
		assertEquals("value2", cache.get("key2"));
		assertEquals("value3", cache.get("key3"));
		assertEquals("value4", cache.get("key4"));
		assertEquals("value5", cache.get("key5"));
		assertEquals("value6", cache.get("key6", ()-> "value6"));
	}