2020.3.18学习日记

1.JSON转Java对象

使用的方法为google的GSON

<!--尽量使用这个版本,2.2.4会报错-->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.6.2</version>
</dependency>

将json数组转化为Java的List对象

/*
json字符串为
items: [{
    productId: "1423113435324",
    productQuantity: 2 //购买数量
}]
*/
List<OrderDetail> orderDetailList = new Gson().fromJson(orderForm.getItems(),
                    new TypeToken<List<OrderDetail>>() {}.getType());

2.BeanUtils复制对象

/*将source复制给destination*/
BeanUtils.copyProperties(source,destination);

需要注意的地方:

  • destination必须包含source复制的字段;

3.校验注解

/*OrderForm实体类*/
@Data
public class OrderForm {
    @NotEmpty(message = "姓名必填")
    private String name;

    @NotEmpty(message = "手机号必填")
    private String phone;

    @NotEmpty(message = "地址必填")
    private String address;

    @NotEmpty(message = "openid必填")
    private String openid;

    @NotEmpty(message = "购物车不能为空")
    private String items;
}
/*Controller中的方法*/
@PostMapping("/create")
public ResultVo<Map<String, String>> create(@Valid OrderForm orderForm,
                                                BindingResult bindingResult)
  • 每个@Valid后都必须要有一个BindingResult接收bean的相关信息,进行相关校验操作;
  • @NotNull表示不为空,但可以为empty,没有size 的限制;
  • @NotBlank只用于String,不能为null且trim()之后size>0;
  • @NotEmpty用于String、Map、Collection、数组,不能为null或长度为0;

4.开发建议

  • 善用Java8特性(如lambda表达式等)和枚举类型(可以包含状态码、信息等);
  • 数据转换没有现成的方法,就写一个Converter;
  • 重复代码和逻辑,尽量写一个公用方法或类;
  • 先整理清除逻辑(要写什么),再写代码,多使用单元测试;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值