博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java泛型的理解
阅读量:4323 次
发布时间:2019-06-06

本文共 1928 字,大约阅读时间需要 6 分钟。

泛型程序设计(Generic programming)的魅力所在:编写的代码可以被不同的类型对象所复用。

类型参数的意义:以前没有类型参数的时候ArrayList里面的里面添加不同类型的对象,不会报错,但是你取出的时候需要进行强制类型转换,就会报错,不同的对象需要进行不同的对象的类型转换。有了泛型之后,你添加的类型就可以确认,如果类型不对编译的时候就会报错,泛型是编译时作用,而不是运行时作用。

ArrayList
files=new ArrayList<>();//<>里面不需要写String在JAVA7之后就不用写了 arrayList.add("hjsjy"); arrayList.add(1);//不同类型就会编译报错 arrayList.get(0);//

例子

下面 T extends Comparable 这句 extends的原因extends更接近子类的概念,可以是类或者接口。
多个接口或者类 需要 &符号。

T extends Comparable&Serializable

/** * 计算泛型数组的最大值和最小值 * * @author hjsjy * @create 2018/10/8 * @since 1.0.0 */public class PairTest {
public static void main(String[] args) {
LocalDate[] birthdays={
LocalDate.of(1992, 1, 4), LocalDate.of(1993, 5, 1), LocalDate.of(1994, 4, 2), LocalDate.of(1995, 3, 3), LocalDate.of(1996, 2, 7) }; Pair
minmax = Arrayminmax.minmax(birthdays); System.out.println(minmax.getFirst()); System.out.println(minmax.getSecond()); }}class Arrayminmax{
public static
Pair
minmax(T[] a){
//
是类型参数, Pair
是返回值类型 if(a==null||a.length==0){
return null; } T min = a[0]; T max = a[0]; for (int i = 1; i
0){ min = a[i]; } if(min.compareTo(a[i])<0){ max = a[i]; } } return new Pair<>(min,max);//这里面<>里面不需要写 }}
  • 不能使用基本类型是实例化类型参数
    没有Pair< double>,只有Pair< Double> 因为类型擦除之后Pair类含有Object类型,Object不能存储double值。
  • 不能创建参数化类型的数组
    Pair< String >[] table=new Pair< String>[10];//Error
  • 不能实例化类型变量
    new T(…) T.class new T[…] Error
  • 不能在泛型类的静态上下文中类型变量无效
public class Single
{
private static T singleInstance;//error public static getSIngleInstance(){
//error return singleInstance; } }
  • 不能排除或捕获泛型类的实例
    本文参考:《java核心技术 卷1》

转载于:https://www.cnblogs.com/narojay/p/10812602.html

你可能感兴趣的文章
Nginx配置文件nginx.conf中文详解(总结)
查看>>
jxl写入excel实现数据导出功能
查看>>
linux文件目录类命令|--cp指令
查看>>
.net MVC 404错误解决方法
查看>>
linux系统目录结构
查看>>
学习进度
查看>>
使用Postmark测试后端存储性能
查看>>
NSTextView 文字链接的定制化
查看>>
第五天站立会议内容
查看>>
最短路径(SP)问题相关算法与模板
查看>>
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
Maven配置
查看>>
HttpServletRequest /HttpServletResponse
查看>>
SAM4E单片机之旅——24、使用DSP库求向量数量积
查看>>
从远程库克隆库
查看>>
codeforces Unusual Product
查看>>