狠狠撸

狠狠撸Share a Scribd company logo
Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註
自订泛型、列举与标註
學習目標
? 進階自訂泛型
? 進階自訂列舉
? 使用標準標註
? 自訂與讀取標註
使用 extends 與 ?
? 在定義泛型時,可以定義型態的邊界
Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註
使用 extends 與 ?
? 可以如下使用 quick() 方法:
使用 extends 與 ?
? 若 extends 之後指定了類別或介面後,想
再指定其它介面,可以使用 & 連接
使用 extends 與 ?
? 來看看在泛型中的型態通配字元 ?
使用 extends 與 ?
使用 extends 與 ?
? 如果有以下程式片段,則會發生編譯錯誤:
? Node<Apple> 是一種 Node<Fruit> ?嗎
使用 extends 與 ?
? 如果 B 是 A 的子類別,而 Node<B> 可視為
一種 Node<A> ,則稱 Node 具有共變性
( Covariance )或有彈性的( flexible )
? Java 的泛型並不具有共變性,不過可以使用
型態通配字元 ? 與 extends 來宣告變數,
使其達到類似共變性
使用 extends 與 ?
使用 extends 與 ?
? 若宣告 ? 不搭配 extends ,則預設為 ?
extends Object
? 這與宣告為 Node<Object> 不同,如果
node 宣告為 Node<Object> ,那就真的只
能參考至 Node<Object> 實例了
使用 extends 與 ?
? 以下會編譯錯誤:
? 以下會編譯成功:
使用 extends 與 ?
? 使用通配字元 ? 與 extends 限制 T 的型態
,就只能透過 T 宣告的名稱取得物件指定給
Object ,或將 T 宣告的名稱指定為
null ,除此之外不能進行其它指定動作
使用 extends 與 ?
? Java 的泛型語法只用在編譯時期檢 ,執行查
時期的型態資訊都是未知
– 也就是執行時期實際上只會知道是 Object 型態
(又稱為型態抹除)
? 由於無法在執行時期獲得型態資訊,編譯器
只能就編譯時期看到的型態來作檢查
使用 super 與 ?
? 如果 B 是 A 的子類別,如果 Node<A> 視為
一種 Node<B> ,則稱 Node 具有逆變性
( Contravariance )
? Java 泛型並不支援逆變性
使用 super 與 ?
? 可以使用型態通配字元 ? 與 super 來宣告,
以達到類似逆變性的效果
使用 super 與 ?
? 你想設計了一個籃子,可以指定籃中置放的
物品,放置的物品會是同一種類(例如都是
一種 Fruit )
? 有一個排序方法,可指定
java.util.Comparator 針對籃中物品進
行排序…
使用 super 與 ?
? 以下泛型未填寫部份該如何宣告?
使用 super 與 ?
? 宣告為 <? extends T> ?嗎
使用 super 與 ?
? 你希望可以有以下的操作:
使用 super 與 ?
? 應該宣告為 <? super T>
自訂列舉
? 在 7.2.3 中曾經簡介過列舉型態,請先瞭解該
節內容 …
瞭解 java.lang.Enum 類別
? 在 7.2.3 節中使用 enum 定義過以下的
Action 列舉型態:
瞭解 java.lang.Enum 類別
? enum 定義了特殊的類別,繼承自
java.lang.Enum
瞭解 java.lang.Enum 類別
瞭解 java.lang.Enum 類別
? 7.2.3 中 Action.class 反編譯後的內容 … .
Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註
瞭解 java.lang.Enum 類別
? 可以透過 Enum 定義的 name() 方法取得列
舉成員名稱字串,這適用於需要使用字串代
表列舉 的場合,相當於值 toString() 的作
用,事實上 toString() 也只是傳回 name
成員的值
? 可透過 ordinal() 取得列舉 int ,這適值
用於需要使用 int 代表列舉 的場合值
瞭解 java.lang.Enum 類別
? 例如 7.2.1 的 Game 類別,可以如下操作
瞭解 java.lang.Enum 類別
? Enum 的 valueOf() 方法,可以傳入字串與
Enum 實例,它會傳回對應的列舉實例
? 通常會透過 Enum 子類別的 valueOf() 方
法,其內部就使用了 Enum.valueOf()
(可觀察先前反編譯 Action 列舉的程式
碼)
瞭解 java.lang.Enum 類別
? Enum 的 equals() 與 hashCode() 基本上
繼承了 Object 的行為,但被標示為
final :
進階 enum 運用
? values() 方法會將內部維護 Action 列舉
實例的陣列複製後傳回
? 由於是複製品,因此改變傳回的陣列,並不
會影響 Action 內部所維護的陣列
進階 enum 運用
? 可以自行定義建構式,條件是不得為公開
( public )建構式,也不可以於建構式中
呼叫 super()
進階 enum 運用
? 例如原本有個 interface 定義的列舉常數
:
進階 enum 運用
Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註
進階 enum 運用
? 定義列舉時還可以實作介面,例如有個介面
定義如下:
進階 enum 運用
進階 enum 運用
? 可以如下执行程式:
進階 enum 運用
? 定義 enum 時有個特定 類別本體(值 Value-
Specific Class Bodies )語法
進階 enum 運用
進階 enum 運用
? 實際上,編譯器會將 Action3 標示為抽象
類別:
? 並為每個列舉成員後的 {} 語法,產生匿名
內部類別,這個匿名內部類別繼承了
Action3 ,實作了 execute() 方法 …
進階 enum 運用
進階 enum 運用
? 以先前 Priority 為例,可改寫為以下:
進階 enum 運用
常用标準标註
常用标準标註
? 如果某個方法原先存在於 API 中,後來不建
議再使用,可於該方法上標註
@Deprecated
常用标準标註
? 若有使用者後續又想呼叫或重新定義這個方
法,編譯器會提出警訊 ..
常用标準标註
? 在 JDK5 之後加入泛型支援,對於支援泛型
的 API ,建議明確指定泛型真正型態,如果
沒有指定的話,編譯器會提出警訊
常用标準标註
? 如果不想看到這個警訊,可以使用
@SuppressWarnings 指定抑制 unckecked
的警訊產生:
常用标準标註
? @SuppressWarnings 的 value 可以指定
要抑制的警訊種類。例如你真的想呼叫
@Deprecated 標示過的方法,又不想看到
警訊,可以如下:
? 也可以一次指定抑制多項警訊:
常用标準标註
? 有沒有可能建立 List<String>[] 陣列實
例?答案是不行!
? 宣告 List<String>[] lists 是可以的,
只是實際上不會有人這麼做
? 可以宣告 List<String>[] lists 是為了
支援可變長度引數
常用标準标註
? 在 JDK6 中這個程式碼可以順利編譯,也不
會有任何警訊
? 如果你這麼使用:
常用标準标註
? Java 泛型語法是提供編譯器資訊,使其可在
編譯時期檢 型態錯誤查
? 編譯器只能就 List<String> 的型態資訊
,在編譯時期幫你檢 呼叫查 doSome() 時,
傳入的 list1 與 list2 是否為
List<String> 型態
常用标準标註
? 設計 doSome() 的人在實作流程時,是有可
能發生編譯器無法檢 出來的執行時期型態查
錯誤
? 這類問題稱為 Heap pollution
常用标準标註
? 即使編譯器提醒身為 doSome() 的客戶端可
能會有這類問題發生又如何?
? 在 JDK7 中,同樣的 Util 類別編譯時,會
發生以下警訊:
常用标準标註
? 如果開發人員確定避免了這個問題,則可以
使用 @SafeVarargs 加以标註
常用标準标註
? 如下呼叫 Util.doSome() 不会再发生警讯
自訂標註型態
? 所有標註型態其實都是
java.lang.annotation.Annotation
子介面
– @Override 型態 java.lang.Override
– @Deprecated 型態 java.lang.Deprecated
– …
自訂標註型態
? 要定義一個標註可以使用 @interface
自訂標註型態
? 設定單 標註(值 Single-value Annotation )
自訂標註型態
? 標註屬性也可以用陣列形式指定
自訂標註型態
? 在定義標註屬性時,如果屬性名稱為
value ,則可以省略屬性名稱,直接指定值
? 這個標註可以使用 @Ignore(value =
"message") 指定,也可以使用
@Ignore("message") 指定
自訂標註型態
? 以下這個標註:
? 可以使用 @TestClass(value =
{Some.class, Other.class}) 指定,
也可以使用 @TestClass({Some.class,
Other.class}) 指定
自訂標註型態
? 使用 default 關鍵字可以對成員設定預設
值
自訂標註型態
? 如果是 Class 設定的屬性比較特別,必須自
訂一個類別作為預設值
自訂標註型態
? 如果要設定陣列預設 的話,可以在值
default 之後加上 {}
自訂標註型態
? 可使用 java.lang.annotation.Target
限定標註使用位置,限定時可指定
java.lang.annotation.ElementType
的列舉值
自訂標註型態
? 想將 @Test8 限定只能用於方法:
自訂標註型態
? 想要將標註資料加入文件,可以使用
java.lang.annotation.Documented
自訂標註型態
? 在定義標註時設定
java.lang.annotation.Inherited 標
註,就可以讓標註被子類別繼承
JDK8 標註 強增
? 在 JDK8 出現之前, ElementType 的列舉
成員,是用來限定 個宣告位置可以進行標哪
註
? JDK8 的 ElementType 多了兩個列舉成員
TYPE_PARAMETER 、 TYPE_USE ,它們是
用來限定 個型態可以進行標註哪
JDK8 標註 強增
? 在定義 @Email 時,必須在 @Target 設定
ElementType.TYPE_PARAMETER ,表示
這個標註可用來標註型態參數
JDK8 標註 強增
? 一個標註如果被設定為
ElementType.TYPE_USE ,只要是型態名
稱,都可以進行標註
JDK8 標註 強增
? 以下幾個標註範例都是可以的:
? 以下的標註就不合法:
JDK8 標註 強增
? 这可以让你如下进行标註:
JDK8 標註 強增
? JDK8 新增了個 @Repeatable
执行时期读取标註资讯
? 如果希望於执行时期读取标註资讯,可以於
自訂標註時使用
java.lang.annotation.Retention 搭
配
java.lang.annotation.RetentionPo
licy 列举指定…
执行时期读取标註资讯
? 可使用 java.lang.reflect.AnnotatedElement 介面
實作物件取得標註資訊
执行时期读取标註资讯
? Class 、 Constructor 、 Field 、 Meth
od 、 Package 等類別,都實作了
AnnotatedElement 介面
? 如果標註在定義時的 RetentionPolicy
指定為 RUNTIME ,就可以用
Class 、 Constructor 、 Field 、 Meth
od 、 Package 等類別的實例,取得設定的
標註資訊
执行时期读取标註资讯
Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註
执行时期读取标註资讯
? JDK8 新增了
getDeclaredAnnotation() 、 getDecl
aredAnnotationsByType() 、 getAnno
tationsByType()

More Related Content

What's hot (20)

Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
?
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行APIJava SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
?
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Justin Lin
?
Java SE 7 技術手冊投影片第 03 章 - 基礎語法
Java SE 7 技術手冊投影片第 03 章 - 基礎語法Java SE 7 技術手冊投影片第 03 章 - 基礎語法
Java SE 7 技術手冊投影片第 03 章 - 基礎語法
Justin Lin
?
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章  - 物件封裝Java SE 7 技術手冊投影片第 05 章  - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
?
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
?
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行APIJava SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
?
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Justin Lin
?
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Justin Lin
?
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJava SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
?
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
?
Java SE 8 技術手冊第 10 章 - 輸入輸出
Java SE 8 技術手冊第 10 章 - 輸入輸出Java SE 8 技術手冊第 10 章 - 輸入輸出
Java SE 8 技術手冊第 10 章 - 輸入輸出
Justin Lin
?
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Justin Lin
?
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDEJava SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
?
从模组到类别
从模组到类别从模组到类别
从模组到类别
Justin Lin
?
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
Justin Lin
?
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與MapJava SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
?
2, object oriented programming
2, object oriented programming2, object oriented programming
2, object oriented programming
ted-xu
?
自订泛型、列举与标註
自订泛型、列举与标註自订泛型、列举与标註
自订泛型、列举与标註
Justin Lin
?
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
Justin Lin
?
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
?
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行APIJava SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
?
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Justin Lin
?
Java SE 7 技術手冊投影片第 03 章 - 基礎語法
Java SE 7 技術手冊投影片第 03 章 - 基礎語法Java SE 7 技術手冊投影片第 03 章 - 基礎語法
Java SE 7 技術手冊投影片第 03 章 - 基礎語法
Justin Lin
?
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章  - 物件封裝Java SE 7 技術手冊投影片第 05 章  - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
?
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
Justin Lin
?
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行APIJava SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
?
Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Justin Lin
?
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Java SE 7 技術手冊投影片第 13 章 - 視窗程式設計
Justin Lin
?
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJava SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
?
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
?
Java SE 8 技術手冊第 10 章 - 輸入輸出
Java SE 8 技術手冊第 10 章 - 輸入輸出Java SE 8 技術手冊第 10 章 - 輸入輸出
Java SE 8 技術手冊第 10 章 - 輸入輸出
Justin Lin
?
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Justin Lin
?
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDEJava SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
?
从模组到类别
从模组到类别从模组到类别
从模组到类别
Justin Lin
?
Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
Justin Lin
?
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與MapJava SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
?
2, object oriented programming
2, object oriented programming2, object oriented programming
2, object oriented programming
ted-xu
?
自订泛型、列举与标註
自订泛型、列举与标註自订泛型、列举与标註
自订泛型、列举与标註
Justin Lin
?
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
Justin Lin
?

Viewers also liked (20)

Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin
?
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Justin Lin
?
Java SE 8 技術手冊第 13 章 - 時間與日期
Java SE 8 技術手冊第 13 章 - 時間與日期Java SE 8 技術手冊第 13 章 - 時間與日期
Java SE 8 技術手冊第 13 章 - 時間與日期
Justin Lin
?
Java SE 8 技術手冊第 7 章 - 介面與多型
Java SE 8 技術手冊第 7 章 - 介面與多型Java SE 8 技術手冊第 7 章 - 介面與多型
Java SE 8 技術手冊第 7 章 - 介面與多型
Justin Lin
?
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理
Justin Lin
?
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型
Justin Lin
?
Java SE 8 技術手冊第 9 章 - Collection與Map
Java SE 8 技術手冊第 9 章 - Collection與MapJava SE 8 技術手冊第 9 章 - Collection與Map
Java SE 8 技術手冊第 9 章 - Collection與Map
Justin Lin
?
從 REPL 到 IDE
從 REPL 到 IDE從 REPL 到 IDE
從 REPL 到 IDE
Justin Lin
?
进阶主题
进阶主题进阶主题
进阶主题
Justin Lin
?
3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD
Justin Lin
?
Java SE 7 技術手冊試讀 - Java 平台概論
Java SE 7 技術手冊試讀 - Java 平台概論Java SE 7 技術手冊試讀 - Java 平台概論
Java SE 7 技術手冊試讀 - Java 平台概論
Justin Lin
?
JDK8 Functional API
JDK8 Functional APIJDK8 Functional API
JDK8 Functional API
Justin Lin
?
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
Justin Lin
?
Java Web 程式之效能技巧與安全防護
Java Web 程式之效能技巧與安全防護Java Web 程式之效能技巧與安全防護
Java Web 程式之效能技巧與安全防護
Justin Lin
?
Java 8 與 retrolambda
Java 8 與 retrolambdaJava 8 與 retrolambda
Java 8 與 retrolambda
Justin Lin
?
常用内建模组
常用内建模组常用内建模组
常用内建模组
Justin Lin
?
资料结构
资料结构资料结构
资料结构
Justin Lin
?
除错、测试与效能
除错、测试与效能除错、测试与效能
除错、测试与效能
Justin Lin
?
类别的继承
类别的继承类别的继承
类别的继承
Justin Lin
?
java8-patterns
java8-patternsjava8-patterns
java8-patterns
Justin Lin
?
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
Justin Lin
?
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Justin Lin
?
Java SE 8 技術手冊第 13 章 - 時間與日期
Java SE 8 技術手冊第 13 章 - 時間與日期Java SE 8 技術手冊第 13 章 - 時間與日期
Java SE 8 技術手冊第 13 章 - 時間與日期
Justin Lin
?
Java SE 8 技術手冊第 7 章 - 介面與多型
Java SE 8 技術手冊第 7 章 - 介面與多型Java SE 8 技術手冊第 7 章 - 介面與多型
Java SE 8 技術手冊第 7 章 - 介面與多型
Justin Lin
?
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理
Justin Lin
?
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型
Justin Lin
?
Java SE 8 技術手冊第 9 章 - Collection與Map
Java SE 8 技術手冊第 9 章 - Collection與MapJava SE 8 技術手冊第 9 章 - Collection與Map
Java SE 8 技術手冊第 9 章 - Collection與Map
Justin Lin
?
3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD
Justin Lin
?
Java SE 7 技術手冊試讀 - Java 平台概論
Java SE 7 技術手冊試讀 - Java 平台概論Java SE 7 技術手冊試讀 - Java 平台概論
Java SE 7 技術手冊試讀 - Java 平台概論
Justin Lin
?
JDK8 Functional API
JDK8 Functional APIJDK8 Functional API
JDK8 Functional API
Justin Lin
?
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
Justin Lin
?
Java Web 程式之效能技巧與安全防護
Java Web 程式之效能技巧與安全防護Java Web 程式之效能技巧與安全防護
Java Web 程式之效能技巧與安全防護
Justin Lin
?
Java 8 與 retrolambda
Java 8 與 retrolambdaJava 8 與 retrolambda
Java 8 與 retrolambda
Justin Lin
?
常用内建模组
常用内建模组常用内建模组
常用内建模组
Justin Lin
?
除错、测试与效能
除错、测试与效能除错、测试与效能
除错、测试与效能
Justin Lin
?

Similar to Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註 (20)

CH18:自订泛型、列举与标註
CH18:自订泛型、列举与标註CH18:自订泛型、列举与标註
CH18:自订泛型、列举与标註
Justin Lin
?
模块一-骋辞语言特性.辫诲蹿
模块一-骋辞语言特性.辫诲蹿模块一-骋辞语言特性.辫诲蹿
模块一-骋辞语言特性.辫诲蹿
czzz1
?
Refactoring with Patterns in PHP
Refactoring with Patterns in PHPRefactoring with Patterns in PHP
Refactoring with Patterns in PHP
Jace Ju
?
闯补惫补面试知识
闯补惫补面试知识闯补惫补面试知识
闯补惫补面试知识
yiditushe
?
Notes of jcip
Notes of jcipNotes of jcip
Notes of jcip
Dai Jun
?
[圣思园][Java SE]Io 3
[圣思园][Java SE]Io 3[圣思园][Java SE]Io 3
[圣思园][Java SE]Io 3
ArBing Xie
?
滨翱厂入门分享
滨翱厂入门分享滨翱厂入门分享
滨翱厂入门分享
zenyuhao
?
颁濒辞箩耻谤别介绍与应用
颁濒辞箩耻谤别介绍与应用颁濒辞箩耻谤别介绍与应用
颁濒辞箩耻谤别介绍与应用
Robert Hao
?
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
?
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2
netdbncku
?
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章
浒 刘
?
Clipper@datacon.2019.tw
Clipper@datacon.2019.twClipper@datacon.2019.tw
Clipper@datacon.2019.tw
Wei-Yu Chen
?
Java 網路程式
Java 網路程式Java 網路程式
Java 網路程式
PingLun Liao
?
Ecmascript
EcmascriptEcmascript
Ecmascript
jay li
?
2. java introduction
2. java introduction2. java introduction
2. java introduction
netdbncku
?
使用贰肠濒颈辫蝉别自定义扩展点
使用贰肠濒颈辫蝉别自定义扩展点使用贰肠濒颈辫蝉别自定义扩展点
使用贰肠濒颈辫蝉别自定义扩展点
tangyouhua
?
TQC+ 程式語言 Python 05:函式
TQC+ 程式語言 Python 05:函式TQC+ 程式語言 Python 05:函式
TQC+ 程式語言 Python 05:函式
neochen2701
?
CH18:自订泛型、列举与标註
CH18:自订泛型、列举与标註CH18:自订泛型、列举与标註
CH18:自订泛型、列举与标註
Justin Lin
?
模块一-骋辞语言特性.辫诲蹿
模块一-骋辞语言特性.辫诲蹿模块一-骋辞语言特性.辫诲蹿
模块一-骋辞语言特性.辫诲蹿
czzz1
?
Refactoring with Patterns in PHP
Refactoring with Patterns in PHPRefactoring with Patterns in PHP
Refactoring with Patterns in PHP
Jace Ju
?
闯补惫补面试知识
闯补惫补面试知识闯补惫补面试知识
闯补惫补面试知识
yiditushe
?
Notes of jcip
Notes of jcipNotes of jcip
Notes of jcip
Dai Jun
?
[圣思园][Java SE]Io 3
[圣思园][Java SE]Io 3[圣思园][Java SE]Io 3
[圣思园][Java SE]Io 3
ArBing Xie
?
滨翱厂入门分享
滨翱厂入门分享滨翱厂入门分享
滨翱厂入门分享
zenyuhao
?
颁濒辞箩耻谤别介绍与应用
颁濒辞箩耻谤别介绍与应用颁濒辞箩耻谤别介绍与应用
颁濒辞箩耻谤别介绍与应用
Robert Hao
?
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
?
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2
netdbncku
?
软件工程 第七章
软件工程 第七章软件工程 第七章
软件工程 第七章
浒 刘
?
Clipper@datacon.2019.tw
Clipper@datacon.2019.twClipper@datacon.2019.tw
Clipper@datacon.2019.tw
Wei-Yu Chen
?
Ecmascript
EcmascriptEcmascript
Ecmascript
jay li
?
2. java introduction
2. java introduction2. java introduction
2. java introduction
netdbncku
?
使用贰肠濒颈辫蝉别自定义扩展点
使用贰肠濒颈辫蝉别自定义扩展点使用贰肠濒颈辫蝉别自定义扩展点
使用贰肠濒颈辫蝉别自定义扩展点
tangyouhua
?
TQC+ 程式語言 Python 05:函式
TQC+ 程式語言 Python 05:函式TQC+ 程式語言 Python 05:函式
TQC+ 程式語言 Python 05:函式
neochen2701
?

More from Justin Lin (20)

Ch14 簡介 Spring Boot
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
?
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
?
Ch12 Spring 起步走
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin
?
Ch11 簡介 JavaMail
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
?
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
?
Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
?
Ch08 自訂標籤
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
?
Ch07 使用 JSTL
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
?
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
Justin Lin
?
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
?
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin
?
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin
?
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin
?
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin
?
14. 进阶主题
14. 进阶主题14. 进阶主题
14. 进阶主题
Justin Lin
?
13.并行、平行与非同步
13.并行、平行与非同步13.并行、平行与非同步
13.并行、平行与非同步
Justin Lin
?
12. 除错、测试与效能
12. 除错、测试与效能12. 除错、测试与效能
12. 除错、测试与效能
Justin Lin
?
11. 常用内建模组
11. 常用内建模组11. 常用内建模组
11. 常用内建模组
Justin Lin
?
10. 資料永續與交換
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin
?
9. 资料结构
9. 资料结构9. 资料结构
9. 资料结构
Justin Lin
?
Ch14 簡介 Spring Boot
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
?
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
?
Ch12 Spring 起步走
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin
?
Ch11 簡介 JavaMail
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
?
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
?
Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
?
Ch08 自訂標籤
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
?
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
?
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin
?
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin
?
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin
?
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin
?
13.并行、平行与非同步
13.并行、平行与非同步13.并行、平行与非同步
13.并行、平行与非同步
Justin Lin
?
12. 除错、测试与效能
12. 除错、测试与效能12. 除错、测试与效能
12. 除错、测试与效能
Justin Lin
?
11. 常用内建模组
11. 常用内建模组11. 常用内建模组
11. 常用内建模组
Justin Lin
?
10. 資料永續與交換
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin
?

Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註