Java-Lombok パッケージ開発の落とし穴

発生するであろう問題:

  1. エンティティ内に業務が完了したかどうかを記述するブール型変数 isOk がある場合
    、lombok によって生成される getset メソッドは次のとおりです。
    public boolean isOk(){
          
          
    	reuturn this.isOk;
    }
    public void setOk(boolean isOk){
          
          
       this.isOk = ok;
    }
    

lombokはハンプルールを解析してgetsetメソッドを自動生成するため、開発時に差異が生じますが、この時Boolean型データであればisの先頭を削除してビジネスキーワードokを直接記述しますので、生成されるメソッドが異なりますので呼び出す際は注意してください。

  1. エンティティに奇妙なフィールド (ユーザー名 (標準以外の表記) を記述するために使用される uName など) がある場合、
    lombok が生成する getset メソッドは次のとおりです。
public String getUName(){
    
    
	return this.uName;
}
public void setUName(String uName){
    
    
   this.uName = uName
}

注: 現時点では、Java で uName の getset メソッドを呼び出すことに関して特別なことは何もありませんが、エンティティ クラスを使用してリクエスト内のパラメーターを受け取りたい場合は、次のようなエラーが発生します。

//用该形参接收参数
@RequestMapping(value = "/getStudent",method = RequestMethod.GET)
@ResponseBody
public MyResult getStudent(@RequestBody Student stu){
    
    
    // 在输出参数时就会发现uName无法接收!!!!!!
}

理由: パラメーターを受信すると、パラメーターが json であるかどうかに関係なく、パラメーターの受信時にエンティティの getset メソッドが呼び出され、値が割り当てられるためです。setUName メソッドが呼び出されると、システムは、パラメータが Uname または uName の代わりに uname と呼ばれるため、パラメータを受け取ることができず、大きな落とし穴にはまってしまいます。

概要: dto クラスを作成するときは、コーディング標準に注意し、ハンプ ルールに厳密に従い、最初の文字を小文字にし、最初のフレーズが英語の 2 文字より大きくなるようにする必要があります。

おすすめ

転載: blog.csdn.net/gjb760662328/article/details/129182941