首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JAVA泛型

【原文博客】:

泛型基础:

参考资料:https://segmentfault.com/a/1190000005179142

泛型在开发中的使用:

泛型对返回前端的参数进行统一限定:

[java]

view plain

copy

publicclassResultVO {

/** 错误码. */

privateInteger code;

/** 提示信息. */

privateString msg;

/** 具体内容. */

privateT data;

}

其中,参数data就可以用到泛型,返回结果可以是:

[plain]

view plain

copy

{

"code": 0,

"msg": "成功",

"data": [

{

"name": "热销榜",

"type": 2,

"foods": [

{

"id": "15552",

"name": "红烧肉",

"price": 12.5,

"description": "VeryNice",

"icon": "http://xxxx.jpg"

}

]

}

]

}

泛型对接口的使用

[java]

view plain

copy

publicinterfaceCodeEnum {

Integer getCode();

}

他的子类皆具有此方法,例如:

子类一:

[java]

view plain

copy

publicenumPayStatusEnumimplementsCodeEnum {

WAIT(,"等待支付"),

SUCCESS(1,"支付成功"),

;

privateInteger code;

privateString message;

PayStatusEnum(Integer code, String message) {

this.code = code;

this.message = message;

}

}

子类二:

[java]

view plain

copy

publicenumProductStatusEnumimplementsCodeEnum {

UP(,"在架"),

DOWN(1,"下架")

;

privateInteger code;

privateString message;

ProductStatusEnum(Integer code, String message) {

this.code = code;

this.message = message;

}

}

泛型在方法中的使用:

[java]

view plain

copy

publicclassEnumUtil {

publicstatic T getByCode(Integer code, Class enumClass) {

for(T each: enumClass.getEnumConstants()) {

if(code.equals(each.getCode())) {

returneach;

}

}

returnnull;

}

}

这其中的可以参考上面的资料学习:

通配符的使用可以对泛型参数做出某些限制,使代码更安全,对于上边界和下边界限定的通配符总结如下:

使用 这种形式,表示 list 可以引用一个 ( 或者其它 List 的 子类 ) 的对象,这个对象包含的元素类型是 的子类型 ( 包含 本身)的一种。

使用 这种形式,表示 list 可以引用一个 ( 或者其它 List 的 子类 ) 的对象,这个对象包含的元素就类型是 的超类型 ( 包含 本身 ) 的一种。

大多数情况下泛型的使用比较简单,但是如果自己编写支持泛型的代码需要对泛型有深入的了解。这几篇文章介绍了泛型的基本用法、类型擦除、泛型数组以及通配符的使用,涵盖了最常用的要点,泛型的总结就写到这里。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180330G1ILJE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券