2015-10-13 72 views
-2

我看到一個方法Java泛型牛逼延伸ABC

protected <T extends ABC> T save(T Acd, boolean en) {

它應該返回ABC的任何子類型。

在這種情況下,爲什麼不簡單地使用ABC?

protected ABC save(ABC Acd, boolean en) {

+1

是寫代碼的人決定,它應該是這樣的。 'extend'使得它在某些情況下更加靈活。在這種情況下,通過ABC的T可以讓你使用更具體的(ABC的子類型)返回類型。 – zapl

回答

2

所不同的是在返回值。鑑於Foo extends ABC

第一個版本允許你寫

Foo f = save(someFoo, true);

第二個版本將要求您投明確

Foo f = (Foo) save(someFoo, true);

+0

很酷,謝謝。感謝您的快速回復 –