Java 泛型

泛型类:

[访问权限] class 类名称<泛型类型标识1,泛型类型标识2,...>{
[访问权限] 泛型类型标识 变量名称;
[访问权限] 泛型类型标识 方法名称(){};
[访问权限] 返回值类型声明 方法名称{泛型类型标识 变量名称}{};
}

类名称<具体类> 对象名称 = new 类名称<具体类>();

构造方法上应用泛型
[访问权限] 构造方法 ([<泛型类型> 参数名称]){
}

泛型传参必须匹配(一模一样的类型)

通配符?
可以接收此类型的任意泛型对象
不能设置被泛型指定的内容

受限泛型

设置上限:
类名称<? extends 类> 对象名称
[访问权限] 类名称<泛型标识 extends 类>{}

设置下限:
类名称<? super 类> 对象名称
[访问权限] 类名称<泛型标识 super 类>{}

泛型接口

[访问权限] interface 接口名称<泛型标识>{
}

实现方法:

  1. 直接在子类之后声明泛型 class Infolmpl implements Info
  2. 直接在子类的定义声明泛型类型 class Infolmpl implements Info< String > (所有实现了接口的方法中的T全为String)

泛型方法

[访问权限] <泛型标识>泛型标识 方法名称([泛型标识 参数名称])

通过泛型方法返回一个泛型类的实例化对象,则必须在方法的返回类型声明处明确地指定泛型标识
public static < T extends Number > Info< T >fun(T param)

要求传入的泛型对象的泛型类型是一致的
public static < T > void add(Info< T >i1,Info< T >i2)

重点

  1. 泛型可以使程序操作更加安全,避免发生类转换异常。
  2. 在程序中如果使用类时没有指定泛型,则泛型将被删除,而使用Object接收参数
  3. 用?接收全部的泛型类型对象
  4. <? extends 类> 设置上限 <? super 类> 设置下限
  5. 泛型方法可在泛型类中,也可在普通类中
  6. 泛型接口的子类要指明具体的泛型类型
  7. 泛型可嵌套使用
  8. 标识接口:在程序中定义没有方法的接口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值