null.get()或者null.set()都是空指针
解决方法:
每次拿到一个变量值,都判空:非空一个逻辑;空一个逻辑即可
(2)循环的插入
例如list.add(a);
a必须在循环内部new
(3)String.split()方法参数需要转译
String[] arr = amtStr.split("\\.");
String[] arr = amtStr.split("\\|");
对于最后存在空值的情况,默认会出现忽略空值,导致分隔后的字段个数有误,解决方法:先用##代替空格,后面再替换
/**
*
* 按照|分割文件一行内容,用"|##|"代替空格||,避免结尾||分割后丢失问题
*
* @param lineData
*/
private String[] splitLineData(String lineData){
while (true) {
lineData = lineData.replaceAll("[|][|]", "|##|");
if (!lineData.contains("||")) break;
}
if (lineData.lastIndexOf("|") == (lineData.length() - 1)) {
lineData = lineData + "##";
}
String[] datas = lineData.split("\\|");
return datas;
}
(4)创建目录时尽量用创建多级目录的new File().mkdirs(),不要用new File().mkdir(),避免报错
String path = "D:/bfjTest/BFJ/123/456";
new File(path).mkdirs();
(5)代码中需要有适当的便于调试的日志
比如调用别的接口后,需要打印出请求和响应信息
(6)Oracle字段慎用CHAR类型,除非该字段值确定是固定长度
否则若位数不足,会自动补齐,但是若用到该字段做查询条件,又会查不到。
(7)乱码问题
JSP页面提交到后台的中文乱码问题解决:
String objAccountName = request.getParameter("objAccountName");
objAccountName=new String(objAccountName.getBytes("ISO8859-1"),"utf-8");
后台返回JSP页面的中文乱码问题解决:
@RequestMapping(value="/merChgNotice",method = RequestMethod.POST,produces = "application/json;charset=utf-8")
注意:文件名、文件存放路径等不要使用中文,否则很容易处理时乱码
(8)BigDecimal字段的累加问题
必须要赋值,否则起不到累加效果。区别于基本类型
failAmt = failAmt.add(jyMcBatDfDl.getDfAmt());
(9)properties属性文件内容中,=左右两边不能有空格,对于密钥等很长的字符串拷贝时不能换行
(10)任务调度问题
任务尽量通过调度中心调度,不要自行调度。因为在测试或者实际的生产环境上通常是多实例部署,自行调度容易互相冲突
(11)标准的关闭流写法
public void processFile(String fName) throws FileNotFoundException, IOException {
FileInputStream fis;
try {
fis = new FileInputStream(fName);
int sz;
byte[] byteArray = new byte[BLOCK_SIZE];
while ((sz = fis.read(byteArray)) != -1) {
processBytes(byteArray, sz);
}
}
finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
log(e);
}
}
}
}
(12)金额字段,格式转换时要慎重
Double转String,直接用toString是科学计数法,超过7位的都是用科学计数法显示字符串的。。。。所以导致20100000.00分转化成String为2.01E7。
解决方法:使用功能强大的BigDecimal
(13)
老婆在家,打算开个淘宝小店卖童装,苦于不懂店铺的基本装修、排版等等各类杂事,还请读者有了解这块的帮忙留言指导一下,小可不甚感激