1.List里面new对象
List<OapOrderAppt> listAppt = new ArrayList<>();
if (listUpdateAppt.size() > 0) {
for (ApptQueryResultDto resultAppt : listUpdateAppt) {
OapOrderAppt updateDomain = new OapOrderAppt();
updateDomain.setId(resultAppt.getApptId());
listAppt.add(updateDomain );
}
}--- OapOrderAppt updateDomain = new OapOrderAppt();在for循环外面定义,后一个值会把前一个值覆盖掉。是因为每次循环对这个对象的引用进行操作。对象的引用只有一个,所以每次后一个把前一个覆盖掉了。
2.static的用法
写代码的时候遇到一个问题。从facade层注入@Autowired的service。直接用类名调用service的方法,报错,提示将service改成static的。就很奇怪,之前从controller直接调用service都没有问题,怎么就从这个facade调用有问题。找了下原因,发现是facade层里面写了一个静态方法:
---总结static修饰的方法里面,必须new对象调用,类名调用的必须是static修饰
3.对于List集合的排序
public static List<PadPaymentDate> sortReturn(List<PadPaymentDate> returnCommissions){
Collections.sort(returnCommissions, new Comparator<PadPaymentDate>() {
@Override
public int compare(PadPaymentDate o1, PadPaymentDate o2) {
long i = o1.getPaymentTime().getTime() - o2.getPaymentTime().getTime();
return (int)i;
}
});
return returnCommissions;
}当使用Collections的这种排序方式的时候,排序规则直接返回了o1-o2。
错误:当传进来的集合是由大到小排序的时候,我这种排序可以实现由小到大的规则。但是当传进来的集合本身是由小到大排序的时候,我这种方式就会将原本正确的由小到大,排序成由大到小。
解析:Collections的sort方法默认是升序排列,如果需要降序排列时就需要重写conpare方法。
解决:①排序规则重新定义【加上判断返回--》if(i>0){return i}】
②使用jdk8的新特性
public static List<PadPaymentIncomeDate> sortIncome(List<PadPaymentIncomeDate> ratiosDates){
Collections.sort(ratiosDates,
Comparator.comparing(PadPaymentIncomeDate::getPaymentTime));
return ratiosDates;
}4.使用SimpleDateFormat报 Unparseable date: "20180315"
public static void main(String[] args){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
String t1 = "20180315";
try {
Date t2 = sdf.parse(t1);
String t3 = sdf.format(t2);
System.out.println("t3="+t3);
} catch (Exception e) {
e.printStackTrace();
}
}是因为【yyyy年MM月dd日】是这种格式,但是t1不是这种格式的。坑爹的simpleDateFormat要求输入的字符串要和你想要的格式长度必须都一样。。。本来是要将【20180909】这种格式转变成【2018年09月09号】,饶了一圈不说还不可行。。。
本文探讨了编程中常见的几个误区和注意事项:1)在for循环外初始化List中的对象会导致值被覆盖;2)静态方法中必须使用new对象调用非静态成员,否则会报错;3)对List排序时,不正确地使用Collections.sort可能导致排序逆转,需明确排序规则;4)使用SimpleDateFormat解析日期时,格式不匹配会导致Unparseable date异常。理解这些细节有助于提升代码质量。
3685

被折叠的 条评论
为什么被折叠?



