注意Java陷阱

2021-09-23 20:12:59 字數 1347 閱讀 7632

一 deletecharat

stringbuilder方法deletecharat:在這個序列中的刪除指定位置字元,只是乙個字元.如下**,在拼接sql過程中,刪除最後乙個」?」或者」,」都是可以的,但是刪除最後乙個」and」時,只是刪除了最後乙個」and」的乙個字元,即」a」 的位置.結果變成: select * form tablename where 1=1 nd

可以使用 setlength 替代:stringbuilder.setlength(stringbuilder.length()-「and 「.length());

public

static string buildselectsql(final string tablename,final string columns

,final string orderbycondition,final string wheres)

stringbuilder stringbuilder=new stringbuilder(" select ");

if (columns==null||columns.length==0)

else

if (wheres!=null&&wheres.length>0)

if (orderbycondition!=null&&!orderbycondition.isempty())

return stringbuilder.tostring();

}

二 使用spring注入物件,當出現null物件時,考慮定義上層物件時是否採用spring方式注入.

如下 **片段:

public

class

payservice19

implements

ipayservice

**片段2 constructpayparams

@component

public

class

constructpayparams

如果**片段1中採用方式二,正常建立constructpayparams物件時,則constructpayparams類中的paybasicprofile無法被注入,為null,必須採用方式一spring注入方式建立constructpayparams物件

三 格式化保留兩位小數

//如果為整型,則異常

string.format("%.2f", orderprofile.getamount()/100.0)

java程式設計陷阱

1 for迴圈。請看下面的 object obj null for int i 0 i 10 i catch exception e if obj null else for 程式正常執行 dao.get i 均會返回 object 物件。現在假如 當 i 6 10時,dao.get i 均發生異常...

Java面試陷阱

1.abstract class name 大俠們,這有何錯誤?答案 錯。abstract method必須以分號結尾,且不帶花括號。2.public class something 有錯嗎?答案 錯。區域性變數前不能放置任何訪問修飾符 private,public,和protected final...

java陷阱 字元陣列

code public class test system.out.println number system.out.println number number 列印的結果是 123number c 18affc 原因 如果乙個字元陣列轉換成string將會呼叫它的tostring方法。而字元陣列...