Sku基本类如下
public class Sku {
// 编号
private Integer skuId;
// 商品名称
private String skuName;
// 单价
private Double skuPrice;
// 购买个数
private Integer totalNum;
// 总价
private Double totalPrice;
// 商品类型
private Enum skuCategory;
//全参 无参 构造器
//插入基本的set get方法
@Override
public String toString() {
return "Sku{" +
"skuId=" + skuId +
", skuName='" + skuName + '\'' +
", skuPrice=" + skuPrice +
", totalNum=" + totalNum +
", totalPrice=" + totalPrice +
", skuCategory=" + skuCategory +
'}';
}
}
测试类
@Test
public void findFirstTest(){
Optional<Sku> optional = list.stream()
.findFirst();
System.out.println("结果1----optional = " + optional.get());
System.out.println("----------");
System.out.println(“结果2----”+JSON.toJSONString(optional.get(),false));
System.out.println("----------");
System.out.println(“结果3——”+JSON.toJSONString(optional.get(),true));
}
结果输出
结果1----optional = Sku{skuId=654032, skuName='无人机', skuPrice=4999.0, totalNum=1, totalPrice=4999.0, skuCategory=ELECTRONICS}
----------
结果2----{"skuCategory":"ELECTRONICS","skuId":654032,"skuName":"无人机","skuPrice":4999.0,"totalNum":1,"totalPrice":4999.0}
----------
结果3----{
"skuCategory":"ELECTRONICS",
"skuId":654032,
"skuName":"无人机",
"skuPrice":4999.0,
"totalNum":1,
"totalPrice":4999.0
}
讨论
如果pojo基本类里没有重写toString方法,结果会不会不一样?
——答案:不一样。结果如下。
没写toString,输出会没有结果,如结果1
但此时,JSON.toJSONString却能正常输出
另外,JSON.toJSONString的参数2,决定展示效果
false是结果2
true是结果3
结果1----optional = com.具体路径.cart.Sku@704921a5
----------
结果2----{"skuCategory":"ELECTRONICS","skuId":654032,"skuName":"无人机","skuPrice":4999.0,"totalNum":1,"totalPrice":4999.0}
----------
结果3----{
"skuCategory":"ELECTRONICS",
"skuId":654032,
"skuName":"无人机",
"skuPrice":4999.0,
"totalNum":1,
"totalPrice":4999.0
}