java基礎 1 幾種獲取類的擴充套件方式

2021-09-24 19:53:14 字數 1109 閱讀 8461

在日常開發過程中經常需要獲取類的擴充套件集。即獲取類的子類集(抽象類),或者介面實現類。比如說狀態模式中,狀態構建類,策略模式中的,策略構造方式。本文介紹幾種獲取方式。

以策略模式為例定義了2種策略

@getter

@allargsconstructor

public enum strategyenum

public static mapgetbeansoftype(final classtype) 

return null;

}

spring提供了很多的擴充套件,允許我們在初始化bean之前,之後做一些自定義邏輯。當然也可以在spring裝配整個過程完成後做一些注入的邏輯

@service

public class instancebyspring implements instancefactory, initializingbean

if (!collectionutils.isempty(handles))

}@override

public abstractstate getstateinstance(final stateenum stateenum)

@override

public handle getstrategyinstance(final strategyenum strategyenum)

}

離了spring還能不能活,當然可以了。jdk本身提供了擴充套件支援serviceloader類。

meta-inf/services配置類

serviceloader.load

public class instancebyserviceloader implements instancefactory

return result.stream().collect(collectors.tomap(p -> p.getcode(), function.identity())).get

(stateenum);

} 總結

這邊是以介面類來介紹的,對於介面也同樣適用。完整**見github

JAVA基礎(String類獲取功能)

1,string類的獲取功能 package com.xiaoshuai.string public class demo5 stringmethod private static void demo4 private static void demo3 private static void de...

Java基礎(類與物件1)

1 物件導向思想 物件導向是基於面向過程的程式設計思想。面向過程 強調的是每乙個功能的步驟 物件導向 強調的是物件,然後由物件去呼叫功能 物件導向的思想特點 a 是一種更符合我們思考習慣的思想 b 可以將複雜的事情簡單化 c 將我們從執行者變成了指揮者 2 類和物件的概念 a 類 是一組相關的屬性和...

Java獲取路徑的幾種方式

private static string file name zxl.txt 第一種 new classpathresource 檔名 classpathresource classpathresource new classpathresource file name file file cla...