1. 程式人生 > >Spring 如何初始化泛型類實例

Spring 如何初始化泛型類實例

Spring

在 Java 中對於泛型類型,比如這樣簡單的類定義

class Processor<T> {}

如果直接初始化時要指定具體類型的話,我們可以這麽寫

Processor<String> processor = new Processor<>(); //Java 7 及以上版本

Spring 對基本泛型的初始化

如果我們要用 Spring 容器來初始化這個類,比如給上面那個類加個 @Named 註解

@Named
class Processor<T> {
}

這時候我們通過 beanFactory.getBean(Processor.class) 得到的是一個什麽樣的實例呢?Spring 怎麽知道要指定什麽具體類型呢?很簡單,任何不確定的情況都是 Object。所以通過容器得到的 Processor

實例相當於用下面代碼構造出來的

Processor processor = new Processor(); //更準確來講是 Processor<Object> processor = new Processor<>();

再進一步,對於有上限約束的泛型定義,Spring 才如何應對呢?像 閱讀全文 >>


Spring 如何初始化泛型類實例