記一次Supplier介面的應用

2021-10-09 09:12:52 字數 909 閱讀 4616

supplier是乙個構造型介面建立物件的工廠,返回乙個物件。

假設有類t,那麼有

t t0=new t();

suppliersupplier=t::new;

t t1=supplier.get();

很多人不明白第二種建立方式的意義,我也僅應用到了一次。

需求:需要根據從word或者excel中讀取a、b物件資料。

思路:根據字尾名,借助列舉實現簡單工廠。

**:

public inte***ce ins 

public class in***cel implements ins

b getb()

}public class insword implements ins

b getb()

}

起初

public enum insenum 

public static ins getins(string ext)

} return null;

}}

期望:讀「檔案一.docx」是檔案一的內容,讀「檔案二.docx」是檔案二的內容。

結果:讀檔案二時保留了檔案一的內容。

原因:列舉返回的insword物件實際上是乙個常量,同乙個例項。

解決:

public enum insenum 

public static ins getins(string ext)

} return null;

}}

測試**:

public class test 

}

話不多說,自己體會。交流請留意。

記一次除錯

這是我最近幾個月來遇到的最棘手的乙個問題 昨天花了4個小時找出第一層次的原因 這個糾結啊,本來和老婆說好準時下班回家吃飯的,結果被這個問題拖了老久。這是乙個gradle的plugin,用來resolve公司內部的dependency的,弄完了跑測試專案的,拋乙個npe,而且npe還不在自己的 裡面。...

記一次 EqualsAndHashCode的疑惑

lombok的使用真的是讓開發人員欲罷不能,乙個 data不管有多少屬性全部搞定,以後加字段也不用從新生成get和set方法。不過這裡還是有乙個小坑需要注意一下,舉個例子 public class equalsandhashcodetest data noargsconstructor access...

記一次除錯

這是我最近幾個月來遇到的最棘手的乙個問題 昨天花了4個小時找出第一層次的原因 這個糾結啊,本來和老婆說好準時下班回家吃飯的,結果被這個問題拖了老久。這是乙個gradle的plugin,用來resolve公司內部的dependency的,弄完了跑測試專案的,拋乙個npe,而且npe還不在自己的 裡面。...