1、說明
泛型程式碼中不能new T()的原因有兩個,一是因為擦除,不能確定型別;而是無法確定T是否包含無參構造函數。
我們透過工廠模式 泛型方法製作實例對象,製作IntegerFactory工廠,製作Integer實例,如果後來程式碼發生變化,可以追加新的工廠類型。
2、實例
/** * 使用工厂方法来创建实例 * * @param <T> */ interface Factory<T>{ T create(); } class Creater<T>{ T instance; public <F extends Factory<T>> T newInstance(F f) { instance=f.create(); return instance; } } class IntegerFactory implements Factory<Integer>{ @Override public Integer create() { Integer integer=new Integer(9); return integer; } }
以上是Java中如何定義資料型別的詳細內容。更多資訊請關注PHP中文網其他相關文章!