java泛型接口详解
来源:互联网 发布:陕西省网络发票查询 编辑:程序博客网 时间:2024/06/05 10:43
/* * 泛型接口 */interface Tool<t> { public void show(T t); //泛型方法 public <e> void print(E e);} /* * 这种方式适合实现接口的时候就知道类里的泛型是什么 */class ToolImpl implements Tool<string> { @Override public void show(String t) { System.out.println("show:" + t); } @Override public <e> void print(E e) { System.out.println("print:" + e); } } /* * 这种方式不好! */class Tool2Impl implements Tool { @Override public void show(Object t) { System.out.println("show obj" + t); } @Override public void print(Object e) { System.out.println("show obj" + e); } } /* * 这种方式适合使用的时候指定泛型 * 在继承接口的时候不用指定泛型 * 注意的是<t>也可以写成别的比如<c> * 写成<e>的话,类上的<e>和print方法 * 上的<e>也不是一个类型 */class Tool3Impl<t> implements Tool<t> { @Override public void show(T t) { System.out.println("show=" + t); } @Override public <e> void print(E e) { System.out.println("print=" + e); } } /* * 这个写法中show方法和print方法用的泛型也不是一个 * 类上的<e>和print方法上的<e>不是一个类型!!! */class Tool4Impl<e> implements Tool<e> { @Override public void show(E t) { System.out.println("show-" + t); } @Override public <e> void print(E e) { System.out.println("print-" + e); } } /* * 错误! * class Tool5Impl<string> implements Tool<t> { * * } *//* * 正确,但是这个泛型上的String没意义,和Tool3Impl写法没区别 * class Tool5Impl<string, t=""> implements Tool<t> { * * } *//* * 错误1 * class Tool5Impl<string|t> implements Tool<e> { * * } *//* * 正确,但是这个泛型上的String|T没意义,和Tool4Impl写法没区别 * class Tool6Impl<string|t, e=""> implements Tool<e> { * * } */public class GenericDemo { public static void main(String[] args) { ToolImpl ti = new ToolImpl(); ti.show("nihao"); ti.print(6); Tool3Impl<string> t3i = new Tool3Impl<string>(); t3i.show("haha"); t3i.print(6); Tool4Impl<string> t4i = new Tool4Impl<string>(); t4i.show("hehe"); t4i.print(6); } }
转自:http://www.2cto.com/kf/201312/264295.html
0 0
- java泛型接口详解
- java泛型接口详解
- 【java】:java接口详解
- Java泛型二:泛型类 泛型接口 泛型方法详解
- Java集合接口详解
- Java接口详解
- Java接口详解
- Java接口详解
- Java接口详解
- Java Comparable接口详解
- Java接口详解
- Java接口详解
- Java接口详解
- Java接口详解
- java的接口详解
- Java接口详解
- java 接口讲详解
- java接口interface详解
- ios url 编码和解码
- Module System of Swift (简析 Swift 的模块系统)
- JSF
- C#==>匿名方法
- ArcGIS中的Geostatistical Analyst 插值方法分类树
- java泛型接口详解
- 我的豆瓣书单
- Maven最佳实践:划分模块
- uva 12345 Dynamic len(set(a[L:R]))
- Dom4j 操作xml出现错误:Invalid byte 2 of 2-byte UTF-8 sequence.
- js获取元素高度、宽度
- 抗议式营销
- Google Guava-基于泛型的使用方式
- python matplotlib安装问题解决方案