深入理解java泛型详解_理解java泛型

泛型应用于类型检查(例如避免ClassCastException),它可以省去类型转换的步骤,因为编译器知道集合中存储的是何种类型。泛型还可以应用于基于泛型的算法。

泛型定义于类或方法的定义中。在类中定义时,它们必须位于非限定类名之后。在方法中定义时,他们必须位于方法名之前。

泛型的命名规范与类一致,首字母须大写。定义的泛型由尖括号“<>”引用。在同一位置定义的多个泛型以英文逗号隔开,它们类似于方法的参数列表。

在指定泛型的真实类型时,这些泛型可以是同一个类型。如果泛型在类中定义,那么必须全部指定它们的真实类型。

// GenericTypeA是类的泛型,可以在它之后定义多个泛型

public class ClassName {

// GenericTypeB是方法的泛型,也可以在它之后定义多个泛型

public ReturnType methodName(...) {

...

}

...

}

泛型指代的类型可以与已定义的任何类的非限定名称一致。例如,你可以将一个将一个泛型的名称指定为String,但并不建议这样做,因为这极易引发混淆。

类的泛型可以作为任何方法的返回类型,它的对象可以作为任何方法或构造方法的参数,还可以出现在任何(静态)代码块中和(静态)方法的方法体中。(静态)方法的泛型的只允许作为当前(静态)方法的返回类型,它的对象只允许作为当前方法的参数,或者出现在当前方法的方法体中。

在类或方法中定义的泛型只继承Object类。当泛型未被指定真实类型时,它的对象只被允许调用Object类的方法。

除此之外,还可以在定义泛型时指定泛型继承的类型,或类继承的泛型。

泛型继承类型T

extends T>

类型T继承泛型

super T>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值