日常总结 jackson注解,rest服务,泛型通配符

      最近在项目中遇到了几个jackson包提供的注解,分别是 1 jsonFormat 2 jsonSerialize 3jsonDeSerialize,了解了一下他们的用法jsonFormat可以用于Date属性的变量或者方法上,可以配合SpringMVC一起使用在,springmvc向客户端返回json值时,自动把日期类根据pattern参数转换成相应的格式,剩下两个适用于序列化和反序列化。可以配合rest风格服务开发时。对变量的格式进行制定,然后序列化发送给客户端或者反序列化从客户端接受数据。

      这里又说道了rest风格服务,之前没有了解过。在看到上面的后两个注解是一直不了解他们是何时被扫描到工作的,上网查了资料。了解到了由于借助项目需要用dubbox开发rest服务,而dubbox整合了jboss的restsasy框架,帮助开发者减少了配置。这里提供一个网址 在这里可以了解到rest应用的相关信息 :https://www.ibm.com/developerworks/cn/java/j-lo-jaxrs/ 

    然后又遇到了一个关于泛型的问题,在接口里写了几个返回值是泛型类的方法,

public <T> ApiResult<T> createXXX();

      这么写有一些其实有一些问题,由于返回值是ApiResult<T>类型的,T的类型并不确定,T类要放A类型并返回,编译器不并不会允许这么做,因为T类型和A类并不兼容,在这里T可以理解为已经固定了的类型,定义的返回值是apiResult<T>那么,只能返回apiResult<T>类,想要返回apiResult<A>类型就要进行强制转换成apiResult<T>类型,这么写未免有些麻烦,而且看着也不美观。但在接口里面定义这种样式的方法个人感觉还是有点规范的,所以并不想把每个方法返回值得T都替换成具体类。翻了书看到了通配符  ‘?’,想到了接口里面的方法可以不变,只要在实现类把方法变成
public ApiResult<?> createXXX();

的形式就可以返回任意类型的T而不用强制转换了。这样接口里的方法写的美观又不影响实现类。还是基础知识不扎实,对泛型部分的了解不深入,才会导致联想不到,需要翻书可以想到。还需要多多学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值