java,generator
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
很多朋友都想知道java generator是什麼?下面就一起來了解一下吧~
java generator就是將泛型應用於接口,接口必須有返回類型為泛型T的next()方法,是一種專門負責創建對象的類。在很多設計模式都會用到(比如工廠方法模式),類似於Iterable對象中使用使用next()不斷獲得下一個值,這裏泛型接口中的next()方法返回創建對象。
2、實現一個CommonGenerator通用生成器
實現一個通用生成器,通過next不斷返回一個對象的實例
interface Generator
1 /**2 * Generator泛型接口 3 * @author Jian4 * @param <T>5 */6 public interface Generator<T> {7 T next();8 }
CommonGenerator:
1 /** 2 * CommonGenerator繼承Generator泛型接口,實現通過next不斷返回實例 3 * @author Jian 4 * @param <T> 5 */ 6 public class CommonGenerator<T> implements Generator<T>{ 7 private Class<T> type; 8 /** 9 * CommonGenerator Constructor10 * @param type11 */12 public CommonGenerator(Class<T> type) {13 this.type = type;14 }15 /**16 * next()不斷返回xxx.class的對象17 */18 @Override19 public T next() {20 try {21 //傳入class返回對象22 return type.newInstance();23 } catch (Exception e) {24 throw new RuntimeException(e);25 }26 }27 /**28 * @param type 傳入創建類xxx.class29 * @return CommonGenerator實例30 */31 public static <T> Generator<T> create(Class<T> type){32 return new CommonGenerator<T>(type);33 }34 }
TestObject:1 /** 2 * 測試類:統計返回測試類的引用實例的數目 3 * @author Jian 4 * 5 */ 6 public class TestObject { 7 private static long counter= 0;//統計計數器 8 public String toString() { 9 //注意:這裏return中不能用this,否則會出現遞歸10 return "TestObject " + (counter++);11 }12 }
MainClass:
1 public class MainClass {2 public static void main(String[] args) {3 Generator<TestObject> generator = new CommonGenerator<>(TestObject.class);4 for(int i=0;i<3;i++) {5 //generator.next()返回對象,輸出調用toString方法6 System.out.println(generator.next());7 }8 }9 }
輸出:
TestObject 0TestObject 1TestObject 2
-
淘寶上買的東西地址填錯了怎麼辦
當我們在淘寶購物選好自己想買的東西后下單時需要為商家提供地址,雖然説現在都有之前填寫過的收貨地址基本上只需要自己選擇一下就可以,但是有時自己難免大意將地址選錯,那麼選錯了地址以後應該怎麼辦呢?郵遞前:當發現自己地址填錯後,儘快的聯繫一下賣家,可以取消訂單...
-
查詢蘋果手機序列號的方法
1、首先打開設置,選擇通用點擊關於本機,然後長按序列號,點擊拷貝,返回桌面。2、打開safari,接着進入蘋果官網,點擊左上角的兩道槓圖標,點擊技術支持,點擊搜索支持框,點擊快速鏈接的保修狀態查詢,最後輸入序列號,輸入驗證碼,點擊繼續即可查看。...
-
電腦啟動不起來是什麼原因
1、首先可能是電源出現問題導致啟動不起來,建議檢查電源。2、主機內部電路損壞,建議找專業人員維修。3、風扇的轉速以及平穩性不好,導致散熱不好,主機無法啟動。4、CUP損壞後也會出現此現象,CPU損壞無法通過自檢,計算機無法啟動。...
-
手機相冊很多垃圾圖片
我們使用手機去瀏覽網頁,或者是刷微博以及微信的時候,都會加載一些網頁,而且有些圖片還會自動下載保存到手機相冊裏面,這就是為什麼我們的手機相冊總是會莫名的多出一些垃圾圖片的原因。如果我們的手機下載了非官網渠道的APP,這種APP軟件會出現無用圖片,會在相冊中保...