public S loadFirstInstanceOrDefault() {
        load();

        for (Class<? extends S> clazz : classList) {
            if (defaultClass == null || clazz != defaultClass) {
                return createInstance(clazz);
            }
        }

        return loadDefaultInstance();
    }
@Test
    public void testLoadFirstInstanceOrDefault() {
        SlotChainBuilder slotChainBuilder = SpiLoader.of(SlotChainBuilder.class).loadFirstInstanceOrDefault();
        assertNotNull(slotChainBuilder);
        assertTrue(slotChainBuilder instanceof DefaultSlotChainBuilder);
    }