public static <T> T getBean(Class<T> interfaceClass, Class typeClass) {
        Object object = serviceMap.get(interfaceClass.getName() + "<" + typeClass.getName() + ">");
        if(object == null) return null;
        if(object instanceof Object[]) {
            return (T)Array.get(object, 0);
        } else {
            return (T)object;
        }
    }
@Test
    public void testGetSingleBean() {
        A a = SingletonServiceFactory.getBean(A.class);
        Assert.assertEquals("a real", a.a());

        B b = SingletonServiceFactory.getBean(B.class);
        Assert.assertEquals("b test", b.b());

        C c = SingletonServiceFactory.getBean(C.class);
        Assert.assertEquals("a realb test", c.c());
    }