1. 程式人生 > >記錄兩個java中使用容易出錯的問題

記錄兩個java中使用容易出錯的問題

  剛剛突然想到自己曾經遇到的兩個錯誤,防不勝防的那種錯誤,本來早該記錄一下一直拖到現在。

  第一個:是關於正則表示式的:

    java的正則表示式的主要的類: Pattern,它有兩個比較容易出錯的方法。 matches() 與 match()。  matches預設是全匹配。 也就是將整個待解析的文字串當成一個整體。  當且僅當整個文字串符合一個規則時,才能被解析。 儘管你在正則表示式中指定非貪婪匹配,仍然得不到想要的結果。 需極其注意。   

    替換的方法就是使用match()方法。  它匹配的更鬆散。 我們可以指定自己的規則去決定是否時貪婪匹配。 

第二個:是關於反射的。 

     我們知道java提供了面向物件超程式設計的能力,也就是反射。 它極大的擴充了java的靈活性。  通過反射我們可以獲得一個類中所定義的成員變數與方法。 就拿獲得方法來說,我們可以設定方法,setAccessable(true)來訪問私有的成員方法!  問題就出在這裡!!  要注意反射提供了兩個類似的方法: getDeclareMethod(String)  ,以及 getMethod(String)。 屬性類似。 特別要注意的是,唯有getDeclareMethod()方法才可以打破私有的限制,getMethod()是不行的!