public static <T> T get(Class<T> clazz, Object... params) {
		Assert.notNull(clazz, "Class must be not null !");
		final String key = buildKey(clazz.getName(), params);
		return get(key, () -> ReflectUtil.newInstance(clazz, params));
	}
@Test
	public void reentrantTest(){
		assertTimeout(Duration.ofMillis(1000L), ()->{
		final C c = Singleton.get(C.class);
		assertEquals("aaa", c.getB().getA());
		});
	}