1 目的,透传字段
2 设计,因为不同的渠道需要透传的字段不同,为了,动态,做一个开关,map《key,list《string》》
key就是渠道code,list中的string就是所需要的字段。
字段这里我没有做开关,要做的也可以在加一个开关,通过反射获得实体中的字段信息。
此处反射代码示例
1 @Test 2 public void t(){ 3 String touChuanCode = "name,dadName"; 4 Student student = new Student(); 5 student.setName("aaaa"); 6 student.setDadName("bbbb"); 7 8 List<String> strings = Splitter.on(",").omitEmptyStrings().splitToList(touChuanCode); 9 strings.forEach(s -> { 10 try { 11 //获得实体的对应属性反射器 12 Field declaredField = student.getClass().getDeclaredField(s); 13 //设置属性可以通过反射获得修改 14 declaredField.setAccessible(true); 15 //通过属性反射器去获得对应实体的字段值 16 Object o = declaredField.get(student); 17 System.out.println(declaredField); 18 System.out.println(o); 19 } catch (NoSuchFieldException e) { 20 e.printStackTrace(); 21 } catch (IllegalAccessException e) { 22 e.printStackTrace(); 23 } 24 }); 25 }
3 分割符号的快速使用
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version></dependency>
pom
4 计算价格保留小数的方法
BigDecimal singlePrice = new BigDecimal(payFee).divide(new BigDecimal(buyAmountSale), 10, BigDecimal.ROUND_HALF_UP);