java代碼規範

一:不容許使用漢語拼音命名
欠規範代碼示例:
    public void zengJiaYongHu(){}  拼音方法名稱
規範代碼示例:
    public void addUser(){}
    解析:應當使用國際化語言,拼音使得代碼難懂

二:Package名必須所有小寫,而且必定要域名的反轉,儘可能使用單個單詞,不要以關鍵字或者熟悉的詞開頭,譬如Java,javax,ognl,否則會引發莫名其妙的異常
欠規範代碼示例:    
    com.lxit.daoImpl  單詞大寫了,daoImpl多個單詞 java.manager ognl.test.
  規範代碼示例:
    com.easytopit.dao.impl
    解析:這是一個你們都認同的習慣寫法,也是一個默認的規範

三:局部變量及輸入參數不要與類成員變量同名(get/set方法與構造函數除外)
  欠規範代碼示例:
    public class UserDAOImpl{
        private int count;
        pubic void page(int count){}
    }
    類字段和方法參數名相同
規範代碼示例:
      public class UserDAOImpl{
        private int count;
        pubic void page(int pageCount){}
      }
    解析:類變量會引發邏輯錯誤,引發覆蓋。

四:儘可能不要在變量後面加魔法數字,英文單個字母和沒有實際意義的英文數字單詞來區分變量
欠規範代碼示例:
        String One;  命名一個英文數字的變量
        User user1 = new User();
        User user2 = new User();
規範代碼示例:
       User userAdd = new User();
       User userUpdate = new User();
    解析:這樣會下降代碼的可讀性,而且不容易往後開發人員的維護

五:包,類,變量命名不要加下劃線(能夠用駝峯命名解決)(常量除外)
欠規範代碼示例:
       com.tag_test.dao.jdbc_impl  有下劃線的包名
       int user_age ;              帶下劃線的變量名
       public class Class_ {}      帶下劃線的類名
規範代碼示例:
       com.tag.test.dao.jdbc.impl
       int userAge ;
       public class Classes {}
    解析:一種習慣性的用法,默認的規範

六:常量命名要大寫,單詞之間要用下劃線分開.
欠規範代碼示例:
     public static final String teamAdd = "teamAdd";   小寫且沒有下劃線
規範代碼示例:
     public static final String TEAM_ADD = "teamAdd";
    解析:容易區分變量和常量

七:方法名第一個字母小寫(構造方法除外).
欠規範代碼示例:
    public void Function(){}  大寫的方法名
規範代碼示例:
    public void function(){}
    解析:習慣用法,默認的規範

八:兩個單詞以上的變量名要駝峯命名
欠規範代碼示例:
    int userage;  age 單詞'a'  小寫
規範代碼示例:
    int userAge;
    解析:可以更清晰的看懂變量所帶表明的意思

九:每一個變量要用別人看得懂的詞語來描述,儘可能不要省略.
  欠規範代碼示例:
    private Student stu ;  把student 簡寫成 stu
規範代碼示例:
    private Student student;
    解析:使代碼看起來清晰令人易懂

十:類的命名通常是名詞(有些ing的動詞,形容詞除外),而且是單數,變量名也是同樣.函數的命名必須是動賓短語(構造詞除外).
欠規範代碼示例:
    public class Manage{}   動詞類命
規範代碼示例:
    public class  UserManager {}
    解析:能使別人一看到類名就知道這個類大概是作什麼的。

十一:數據庫鏈接對象的生成不能跟Model層混攪,必須將其放在一個單獨的類裏,用單例模式來實現數據庫的鏈接.
    欠規範代碼示例:

   java

public  class  UserDAOImpl(){    
     private  static  Connection connection;
     public  static  synchronized  Connection getConnection() {
         if  (connection ==  null ) {    
             try {} catch  (SQLException e){}  
             catch  (ClassNotFoundException e)
             { e.printStackTrace() }
         }
         return  connection;      
       }  
}

 

規範代碼示例:mysql

public  class  DBConnectionTools {
      private  static  Connection connection;
      private  DBConnectionTools(){}
      public  static  synchronized  Connection getConnection() {
          if  (connection ==  null ) {
              try  {
                  Class.forName(Constants.MYSQL_DRIVER);
                  connection = DriverManager.getConnection(Constants.MYSQL_URL, Constants.MYSQL_USER_NAME,     
                  Constants.MYSQL_PASSWORD);            
              } catch  (SQLException e) {
                     e.printStackTrace();             
              catch  (ClassNotFoundException e) { 
                  e.printStackTrace();              
              }
          }
          return  connection;
      }
  }

 

    解析:數據庫鏈接應當單獨出去出來,以便其它類能夠複用
       
十二: id通常不用int類型,用Long類型
    欠規範代碼示例:
    int id;           int 類型的關於人員的id
    規範代碼示例:
    Long id;
    解析:隨着id的增加,當增加的id超出int的範圍的時候就會出現異常web

 
十三:sql語句必定要用佔位符,不能用拼寫組成的語句(不然會引發Sql注入安全問題)sql

    欠規範代碼示例:數據庫

public  void  addUser(User user){   
    String sql= "insert into student(ID,name,sex,address) values(" +user.getId()+ "," +user.getName()+ "," +user.getSex()+ "," +user.getAddress()+ ")"  ;
    //?則表明佔位符   
}

 

    規範代碼示例:windows

public  void  addUser()
{
        sql= "insert into student(ID,name,sex,address) values(?,?,?,?)"  //?則表明佔位符
        //可用預處理來發送sql語句
}

解析:很容易出現錯誤,並且不清晰,不容易讓人讀懂。數組

十四:當一個變量在每一個方法裏面使用,而且每一個方法裏面包含的內容不同,那麼這個變量不要用字段變量,要用局部變量,譬如PreparedStatement 最好不要聲明爲類字段.
欠規範代碼示例:tomcat

public  class   UserDAOImpl()
{
        private  PreparedStatement preparedStatement;
}

 

    規範代碼示例:安全

public  class  UserDAOImpl{
     public  void  addUser(){
        PreparedStatement preparedStatement = new  PreparedStatement(sql);
     }
}

解析:雖然不少類都使用到了PrepareStatement對象,但各個方法裏用到的PrepareStatement對象都是不一樣的,併發

    因此不能做爲類字段,抽取出來作類字段的話會出現數據混亂的問題

十五:作主鍵的列沒有任何業務邏輯,沒有任何實際意義,並且任什麼時候候都不能修改。
    欠規範主鍵示例:主鍵用一個身份證號碼,或者學號
    規範主鍵示例:主鍵用id,惟一性的,不可改變的。
    解析:雖然身份證號碼和學號也是惟一性的,可是他們是有意義的列,並且在程序升級時是能夠更改的,
    而id主要就是用來作主鍵的

十六:取記錄的時候,拿數據庫條件語句去比較,不要本身用Java代碼去比較.
    欠規範代碼示例:

public  void  deleteById(Long id){
      String sql =  "select id,name,age from user" ;
      //........................
      ResultSet result = ResultSet.executeQuery();
      where(result.next()){
         if (result.getLong( "id" )==id){
            //..........................................刪除
         }
      }
}

規範代碼示例:  

public  void  deleteById(Long id)
{
       String sql =  "delete from user where id = ?" ;
       //刪除操做
}

      解析:一旦取出的數據量過大,而用java代碼的if判斷的話,會影響運行速率,還可能致使內存不足等錯誤。

             

   
二十二:兩個不一樣的包不能出現相同的文件名
     欠規範示例:

     packge com.lxitedu.work.MyWork.java

     packge com.lxitedu.task.MyWork.java
     規範示例:

     packge com.lxitedu.work.MyWork.java

     packge com.lxitedu.task.Work.java

     解析:當一個在一個龐大的系統的時候,極可能引發混淆
二十三:提交代碼前若是有TODO標籤,要刪除掉,若是要標記沒有作完的任務或者之後要改進的任務,用LXTODO.

     欠規範代碼示例: 暫時無

     規範代碼示例:暫時無

     解析:暫時無
二十四:註釋掉的代碼提交前要刪除,通常刪除本身的註釋的代碼,但不要刪除別人註釋的代碼。
     欠規範代碼示例:

/*
public void add(){
     if(true){
         System.out.println("這段代碼已
         經給註釋掉了,程序中沒有用到");
     }
}
*/

     提交前沒有刪除這段代碼
     規範代碼示例:刪掉就好了
     解析:既然代碼在程序中沒有用到的話就要刪除,以避免其餘隊員看到誤解和浪費他人時間來讀其代碼。
   
二十六:PreparedStatement、ResultSet、Statement.對象用完以後必須進行調用close()將會關閉(在finally關閉),當即釋放此 Statement 對象的數據庫和 JDBC 資源,否則會佔用系統不少資源.
   // 此規範能夠用適配器模式解決,沒必要手動去關閉了
   
二十七:儘可能不要在構造方法裏初始化代碼.
     欠規範代碼示例:  

public  class   Person{
      public  Person(){
          Person person =  new  Person();
          add();
      }
}
    規範代碼示例:

public class  Person{
   public Person()

Unknown macro: {    //儘可能少作些沒必要要的事情    }

}

    解析:由於在構造器裏初始化沒辦法控制,構造器多了也容易出現混亂。若是有反射機制,也許會跳過構造方法。


二十八:函數的返回值類型(若是有的話)要和其功能相匹配,要符合常規思惟.
  欠規範代碼示例:

獲得一個用戶的姓名
public  String getPeopleName()              
{
     return  "userName" ;
}

 

     規範代碼示例:

獲得一個用戶的姓名的方法
public  String getUserName(){
     return  "userName" ;               
}

     解析:是獲得一個用戶的姓名,而不是獲得一我的的姓名,由於人不必定是用戶,因此用getUserName更準確一點   
二十九:內部類的變量不要設爲全局變量(public 字段變量),儘可能少用全局變量,多用局部變量
    欠規範代碼示例:

public  class  Test {
    class  InnerClass{
        public  String string= "HELLO WORD!" ;
        public  void  print(){
            System.out.println(string);
        }
    }
}


規範代碼示例:

public  class  Test {
     
    class  InnerClass{
        public  void  print(){
            String string= "HELLO WORD!" ;
            System.out.println(string);
        }
    }
}


    解析:暫時無

三十:若是是布爾型的變量則最好在命名用is或has開頭。例如:isVisible,isExists等.
欠規範代碼示例:
    boolean flag=resultSet.next();
規範代碼示例:
    boolean hasNext=resultSet.next();
    解析:難懂,且沒有任何意義。 

三十一:若是變量命名要加註釋,說明命名不是很準確(若是公司須要強制寫註釋,或者這個變量比較複雜除外).
    欠規範代碼示例

      //配置文件的路徑

       String path="java/tomcat/web.txt";

   規範代碼示例:

      String configFilePath="java/tomcat/web.txt";
      解析:命名清晰能夠加強代碼的可讀性,節省編輯和閱讀時間。
   
三十二:任何類字段除非必要(例如常量),不然都要私有化.
    欠規範代碼示例:    

public  class  Person          
{
      String name;
      String sex;
      int  age;
  }

    規範代碼示例:  

public  class  ClassName              
{
     private  String name;
     private  String sex;
     private  int  age;
}

   解析:沒有爲程序的安全考慮。能夠被其餘的類訪問
三十三:儘可能減小一個類屬性的做用域,在離使用它的最近的地方定義.
    欠規範代碼示例:

int  index =  1 ; //相似這種狀況 變量生命離使用地方有點遠
       String sql =  "insert into student(ID,name,password,sex,address) values(?,?,?,?,?)" ;
       PreparedStatement preparedStatement = connection.prepareStatement(sql);
       preparedStatement.setString(index++, user.getID());
       preparedStatement.setString(index++, user.getName());
       preparedStatement.setString(index++, user.getPassword());
       preparedStatement.setString(index++, user.getSex());
       preparedStatement.setString(index++, user.getAddress());
       preparedStatement.executeUpdate();
       preparedStatement.close();

    規範代碼示例:  

String sql =  "insert into student(ID,name,password,sex,address) values(?,?,?,?,?)" ;
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        int  index =  1 ;
        preparedStatement.setString(index++, user.getID());
        preparedStatement.setString(index++, user.getName());
        preparedStatement.setString(index++, user.getPassword());
        preparedStatement.setString(index++, user.getSex());
        preparedStatement.setString(index++, user.getAddress());
        preparedStatement.executeUpdate();
        preparedStatement.close();

  解析:當別人維護易引發混淆,容易引起錯誤

       
三十四:單例模式的使用必需要考慮到同步.
    欠規範代碼示例:    

//沒有使用到同步
public  static  Connection getConnection()  throws  ClassNotFoundException, SQLException{
      if (conn== null ){
          Class.forName( "com.p6spy.engine.spy.P6SpyDriver" );
          conn =   DriverManager.getConnection( "jdbc:mysql://localhost:3306/test" , "root" "root" );
      }
      return  conn;
}   
    規範代碼示例:    
//最熟悉的獲得一個Connection鏈接
public  static  synchronized  Connection getConnection()  throws  ClassNotFoundException, SQLException{
     if (conn== null ){
         Class.forName( "com.p6spy.engine.spy.P6SpyDriver" );
         conn =   DriverManager.getConnection( "jdbc:mysql://localhost:3306/test" , "root" "root" );
     }
     return  conn;
}

 解析:當有多個用戶併發使用的時候會形成數據的混亂,致使線程不安全

三十五:方法裏面參數最好不要超過三個. 
    欠規範代碼示例:

public  void  update ( int  id ,String name,String code,String sex)
{
         ........
}

    規範代碼示例:

public  void  update ( int  id,String name,String sex)
{
      //  .........
}
 
or//若是超過三個 必須把數據封裝成一個pojo
 以下把上面update方法中參數封裝起來
 
public  class  User(){
      private  int  id;
      private  String name;
      public  String getName() {
           return  name;
      }
      public  void  setName(String name) {
           this .name = name;
      }
      public  String getCode() {
           return  code;
      }
      public  void  setCode(String code) {
           this .code= code;
      }
      public  void  setId( int  id) {
           this .id = id;
      }
      public  int  getId() {
           return  id;
      }
}
     public  void  update (User user)
    {
         .......
     }

 

解析:參數多容易出現錯誤。尤爲是調用的時候,若是參數的順序傳錯了,將是一個很是大的麻煩,並且沒有拓展性

三十六:值類或值對象必須重寫toString方法.
欠規範代碼示例:

public  class  Code {
         private  int  id;
         private  String name;
         private  String sex;
         public  String getName() {    
            return  name;      
         }
         public  void  setName(String name) {
             this .name = name;
         }      
         public  String getSex() {
             return  viscera;
         }
         public  void  setSex(String sex) {
             this .viscera = viscera;
         }
         public  void  setId( int  id) {
             this .id = id;
         }
         public  int  getId() {
             return  id;
         }
}

 

規範代碼示例:

public  class  Person{
      private  int  id;
      private  String name;
      private  String sex;
      public  String getName() {
           return  name;
      }
      public  void  setName(String name) {        
           this .name = name;      
      }
      public  String getSex() {
           return  sex;
      }
      public  void  setSex(String sex) {
           this .sex= sex;
      }
      public  void  setId( int  id) {
          this .id = id;
      }
      public  int  getId() {
          return  id;
      }
      public  String toString() {
           return  new  StringBuffer().append(id+ "," ).append(name+ "," ).append(sex).toString();
      }
}

 

解析:toString的做用是一字符串的形式來返回它的實例信息,由於不一樣的類的信息時不一樣的,因此要重寫,不能所有都繼承Object的toString方法。   
三十七:重寫equals方法的時候,必須重寫hashCode方法.
欠規範代碼示例:

public  class  People
{
        //必要的屬性
        //必要的get和set方法
        //toString 方法  
         沒有hashCode方法
         沒有equals方法        
}

 

規範代碼示例:

public  class  People{
         //必要的屬性
         //必要的get和set方法
         //toString 方法
        public  int  hashCode() {
             final  int  prime =  31 ;
             int  result =  1 ;
             result = prime * result + id;
             result = prime * result + ((name ==  null ) ?  0  : name.hashCode());
             result = prime * result + ((viscera ==  null ) ?  0  : viscera.hashCode());
             return  result;
         }
         public  boolean  equals(Object obj) {
             if  ( this  == obj)
                 return  true ;
             if  (obj ==  null )
                 return  false ;
             if  (getClass() != obj.getClass())
                 return  false ;
             Code other = (Code) obj;
             if  (id != other.id)
                 return  false ;
             if  (name ==  null ) {
                 if  (other.name \!=  null )
                     return  false ;
             else  if  (!name.equals(other.name))
                 return  false ;
             if  (viscera ==  null ) {
                 if  (other.viscera \!=  null )
                     return  false ;
             } else  if  (!viscera.equals(other.viscera))
                 return  false ;
             return  true ;
         }
     }
   

   解析:重寫equals和hashcode方法是爲了像Set同樣不能存儲重複的元素,實現serializable是爲了使這個類能夠序列化
三十八:單元測試的時候必須是對象比較,若是一個字段有100個字,有時候數據庫會自動刪除一些,此時咱們就不知道程序那出bug了
欠規範代碼示例:暫時無
規範代碼示例:暫時無
    解析:實用的開發經驗
三十九:單元測試類名後面要加Test.
欠規範代碼示例:
    //這是一個UserDAO的單元測試類
    public class  UserDAO{}
規範代碼示例:
    public class UserDAOTest{}
    解析:這樣寫讓別人知道這個類是用作測試的,清晰易懂

四十:操做提示顏色,成功用藍色字體,錯誤用紅色字體. 
欠規範代碼示例:  暫時無
規範代碼示例:     暫時無
    解析:           暫時無
四十一:控制層不能調用model層除了最頂級的接口外任何內容。要經過new頂級接口才能調用   
欠規範代碼示例:

public  class  UserServiceImpl{
        private  UserDAOImpl userDAOImpl;
        public  UserServiceImpl(){
            userDAOImpl =  new  UserDAOImpl();
        }
        public  void  deleteById(Long id){
            userDAOImpl.deleteById(id);
        }
    }
   

規範代碼示例:

public  class  UserServiceImpl{
        private  UserDAOuserDAO;
        public  UserServiceImpl(){
            userDAO = DAOFactory.getUserDAO();
        }
        public  void  deleteById(Long id){
            userDAO.deleteById(id);
        }
    }
   

    解析:這樣作不只是爲了程序的靈活着想,更是爲了使代碼的層次結構清晰明瞭
四十二:返回類型儘可能是父類接口或是抽象類,例如:要取得一個arrayList<User>對象,則返回類型要用List<User>。(父類或接口聲明,子類實現)
    欠規範代碼示例:

//返回一個只能是保存User對象元素的list    public ArrayList query(){
        ArrayList arrayList= new  ArrayList();
        ....................................
        return   arrayList;
    }

   

規範代碼示例:;

public  List query(){
        List list= new  ArrayList();
        ....................................
        return   list;
    }
解析:擴大對象的接受範圍,更有拓展性

   
四十三:SQL表或者字段裏命名要注意,不能把關鍵詞做爲屬性.
    欠規範代碼示例:

create tableName{
        id bigint primary key,
        describe varchar( 20 )
    }

 規範代碼示例:

creat tableName{
        id bigint not  null  primary key,
        classDescribe varchar( 20 )
    }

 解析:SQL語句裏字段名爲關鍵字時,執行時就可能會出現問題,出錯了很難找,因此在開始的時候就要注意.

     
四十四:使用try...catch時,通常在finally裏面的close()能夠不捕獲異常,但必定要在catch處理異常(相似於治病打麻醉藥)
    欠規範代碼示例:

try  {
         //代碼塊      
  } catch  (Exception e) {
  
  }

  規範代碼示例:

try  {
         //代碼塊
  } catch  (Exception e) {
             log.error( "...." +e)
             e.printStackTrace();
  }
解析:若是程序出現了異常,而catch塊又沒有任何錯誤輸出,那麼你的程序將永遠不會報錯,就沒法發現錯誤,可是你的程序

    老是有問題的,但又很難發現錯誤在哪裏
   
四十五:當可以用工廠實例化對象的時候不要用構造器生成對象,要用工廠方法去代替。   
    欠規範代碼示例:

UsreDAO userDAO =  new   UserDAOImpl();

  規範代碼示例:

UserDAO userDAO = DAOFactory.getUserDAO();


    解析:爲了程序擴展性考慮,當構造器裏的改變的時候,好比說增長一個參數,可能會由於系統過於龐大而忘記了修改
    而用工廠模式能夠一勞永逸

四十六:屬性不能成爲一個類 也不能成爲一個函數名.
    欠規範代碼示例:

public  class  Name{
       public  void  sex(){
          // - - -
       }
   }

   規範代碼示例

public  class  Person{
      public  void  addPerson(){
        //  - - -
      }
   }
    解析:對象的屬性只能做爲屬性,不能單獨作一個類

四十七:若是一個方法的返回值是用來作判斷的,返回值最好不要用字符串,要用int,
    欠規範代碼示例: 

//好比說修改後要提示修改該成功
     public  String updateUser(User user){
         ....................................
         if ( true ){
         //成功
             return  "修改爲功" ;
         } else {
         //失敗
             return  "" 修改失敗;
         }
     }

 規範代碼示例:

public  int  updateUser(User user){
         ....................................
         if (){
         //成功
             return  1 ;
         } else {
         //失敗
             return  0 ;
         }
     }
    

  解析:由於字符串容易引起潛在的錯誤,好比失誤的操做使得字符串多了個空格等等。
四十八:在eclipse中,一次啓動的工程最好不要超過兩個以上。
  不可取的操做:
    在tomcat中一次加載多個(兩個以上)工程
正確的操做:
    加載的工程最多不要超過兩個,不用的工程關閉
    解析:啓動多了佔用資源,出錯了檢查也不方便,也容易起衝突
五十一:在類中,重複了兩次以上且公用的變量通常都要抽出成爲類字段。
欠規範代碼示例:

public  class  ClassDAOImpl{
          public  void  addClass()
          {
              Connection conn=Tools.getConnection();
          }
          public  void  deleteById( int  ID){
              Connection  conn = Tools.getConnection();
          }
      }  

 

規範代碼示例:

public  class  ClassDAOImpl{
         private  Connection conn=Tools.getConnection();;
         public  void  addClass()
         {
            conn.add();
         }
         public  void  deleteById( int  ID){
            conn.delete();
         }
         ............
     }
   解析:增長代碼的可讀性,

五十二:程序代碼中不要出現魔法數字。
欠規範代碼示例:

if (mark== 6 ){
          System.out.println( "6是魔法數字。" );
     }
   規範代碼示例
int  addOperation= 6 //聲明一個變量表示數字6所表明的含義
     if (mark==addOperation){
        System.out.println( "this is add handle" );
    }

解析:憑空出現的數字沒人知道它是什麼。很難令人讀懂

五十三:數據庫語句中,不要用*來代替也不能出現用變量拼寫的語句
    欠規範代碼示例:

//一個sql查詢語句
    String sql =  "select * from student where id =" + user.getId();


    規範代碼示例:

String sql =  "select id,name,sex,age from student where id =?" ;

   解析:1.用屬性名而不用*讓語句看起來更加清析易懂。
          2.在增長或刪除屬性的時候出錯的機率更少,也容易找出問題來。
          3.通常狀況不要去拼湊sql語句,應當用佔位符,預處理來發送sql語句;

五十四:方法命名的時候必定要力求精準,好比:查詢的時候要命名爲queryAll或者queryByID.
   欠規範代碼示例:

   //查詢全部用戶若是有多個查詢方法的話 public void query(){- - - } //未免太過模糊

 
  規範代碼示例: 
  //根據ID來查找用戶;
   public void queryById(Long id){ //代碼塊 }
   //查詢全部用戶
   public void queryAll(){} 

   解析:若是隻有一個query太模糊了很難知道是查什麼用的.

五十六: 有返回類型的方法,不能返回一個null

   欠規範代碼示例:

//返回類型爲null的
  public  static  StudentDAO getStudentDAO(String type) {
    if (DAOFactory.DAO_TYPE_JDBC.equals(type)){
      return  new  StudentDAOJdbcImpl();
    }
    return  null ;
  }

規範代碼示例:

//返回一個自定義的異常   public static StudentDAO getStudentDAO(String type) {
   if (DAOFactory.DAO_TYPE_JDBC.equals(type)){
     return  new  StudentDAOJdbcImpl();
   }
   return  new  LxitException();
}

 

   解析:一個方法有返回類型,就不能返回null或0. 若是要返回null時或0,則要寫一個自定義的異常.返加這個自定義異常. 或者用集合工具類的emptyList方法返回一個空集合。
五十七: 類裏面不能寫空方法.若是有必要,則在方法裏面要加一個註釋
   欠規範代碼示例:
   //寫了一個空的方法

 public void init(){ } 

規範代碼示例:
  //在方法裏面加上註釋

 public void init(){ //TODO 該方法尚未寫完,待完成. } 

   解析:若是一個方法裏面什麼都沒有寫,那麼要刪除. 若是是實現過來的必需要重寫該方法而不作會事的,應該要加註釋.


五十九:若是是在PersonDAO 類裏面,寫增長方法就不用加後綴了.
   欠規範代碼示例:  

//本類裏面寫增長方法還加了後綴  
public  Person addPerson(){
     Person person =  new  Person();
     ......
<
相關文章
相關標籤/搜索