2010-10-15 74 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的地方放置此类约束。

它与普通函数参数类似,只在声明中写入类型,而不在使用参数的地方写入。

相关问题