【原文博客】:
泛型基础:
参考资料: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 的 子类 ) 的对象,这个对象包含的元素就类型是 的超类型 ( 包含 本身 ) 的一种。
大多数情况下泛型的使用比较简单,但是如果自己编写支持泛型的代码需要对泛型有深入的了解。这几篇文章介绍了泛型的基本用法、类型擦除、泛型数组以及通配符的使用,涵盖了最常用的要点,泛型的总结就写到这里。
领取专属 10元无门槛券
私享最新 技术干货