public S loadFirstInstance() {
        load();

        if (classList.size() == 0) {
            return null;
        }

        Class<? extends S> serviceClass = classList.get(0);
        S instance = createInstance(serviceClass);
        return instance;
    }
@Test
    public void testLoadFirstInstance() {
        ProcessorSlot slot = SpiLoader.of(ProcessorSlot.class).loadFirstInstance();
        assertNotNull(slot);
        assertTrue(slot instanceof NodeSelectorSlot);

        SlotChainBuilder chainBuilder = SpiLoader.of(SlotChainBuilder.class).loadFirstInstance();
        assertNotNull(chainBuilder);
        assertTrue(chainBuilder instanceof SlotChainBuilder);

        InitFunc initFunc = SpiLoader.of(InitFunc.class).loadFirstInstance();
        assertNotNull(initFunc);
        assertTrue(initFunc instanceof MetricCallbackInit);
    }