2010-10-15 70 views
1
interface Foo<T extends Number>{ 
} 

class Bar<T extends Number> implements Foo<T>{ 

} 

爲什麼類必須要寫入的方式,而不是:爲什麼要實現一個通用接口,使其不直觀?

class Bar<T extends Number> implements Foo<T extends Number>{ 
} 

當然第二種方式更清晰。

+5

你爲什麼認爲第二種方法更清晰? – 2010-10-15 22:09:11

+0

這是什麼語言? – 2010-10-15 22:14:59

+0

你知道有多少種語言具有'extends'和'implements'關鍵字? ;) – 2010-10-15 22:41:10

回答

5

因爲這是相同的T,所以這是多餘的,再說一次extends Number

2

在線路

class Bar<T extends Number> implements Foo<T> { 

T在第一次出現的定義和在第二使用。 extends Number約束可以用T實例化的類型。您只能在定義T的地方放置此類約束。

它與普通函數參數類似,只在聲明中寫入類型,而不在使用參數的地方寫入。

相關問題