ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 第四章第三节--3 编写泛型 标签(空格分隔): 廖雪峰 --- ## 如何编写一个泛型类 简单方法 - 按照某种类型(比如`String`)编写类 - 标记所有的特定类型. - 把特定类型更换成T,生在方法名后面声明<T>. ![原始](http://p0b921qfc.bkt.clouddn.com/18-5-18/34647368.jpg) ![替换](http://p0b921qfc.bkt.clouddn.com/18-5-18/95206326.jpg) 当然熟练之后可以直接编写. ## 注意事项 编写泛型`<T>`不能用于静态方法: - 编译错误 - 编译器无法在编译器或者静态方法中使用泛型类型`<T>`. ![错误实例](http://p0b921qfc.bkt.clouddn.com/18-5-18/24360737.jpg) 不过有人会发现在`Static`之后添加`<T>`则不会报错,如下所示 ![修改方法](http://p0b921qfc.bkt.clouddn.com/18-5-18/87345774.jpg) 主要注意的是这里的`T`和作为泛型参数传递过来的`T`没有关系,应该在实现的代码中改为其他的标识符. ![ 改为K](http://p0b921qfc.bkt.clouddn.com/18-5-18/54262853.jpg) 编译泛型的时候可以在函数名之后传入两种泛型参数 ![两个泛型参数](http://p0b921qfc.bkt.clouddn.com/18-5-18/80038152.jpg) ## 小节小结 - 编写泛型时,需要在函数名之后添加泛型参数`<T>`. - 静态方法不能引用泛型参数`<T>`,必须使用其他的类型`<K>`来实现泛型. - 泛型可以用来定义两种类型`<T,K>`