Eclipse中自動生成get/set時攜帶注釋給get/set


Eclipse中自動生成get/set時攜帶注釋給get/set

 編碼的時候通常要用到 JavaBean ,而在我們經常把注釋寫在字段上面,但生成的Get/Set方法不會生成,通過修改Eclipse源碼可解決。效果如下:

  1. /**  
  2.  * 員工ID  
  3.  */  
  4. private String userid;   
  5. /**  
  6.  * 獲取員工ID  
  7.  * @return userid 員工ID  
  8.  */  
  9. public String getUserid() {   
  10.     return userid;   
  11. }   
  12. /**  
  13.  * 設置員工ID  
  14.  * @param userid 員工ID  
  15.  */  
  16. public void setUserid(String userid) {   
  17.     this.userid = userid;   
  18. }  

 

解決方案如下:

通過反編譯技術,修改ECLIPSE的org.eclipse.jdt.ui_3.3.1.r331_v20070906.jar包中的
org.eclipse.jdt.internal.corext.codemanipulation.GetterSetterUtil類
下的getSetterStub及getGetterStub函數,來實現生成getter/setter時,注釋使用成員的注釋(如果成員的注釋有的話,如果沒有則使用注釋模板生成,如果選擇了生成getter/setter需要生成code comment的話)

getSetterStub函數修改的地方為:
將原:
  if(addComments)
  {
  String comment = CodeGeneration.getSetterComment(field.getCompilationUnit(), parentType.getTypeQualifiedName('.'), setterName, field.getElementName(), typeName, argname, accessorName, lineDelim);

修改為:
  if(addComments)
  {
  String comment = CodeGeneration.getSetterComment(field.getCompilationUnit(), parentType.getTypeQualifiedName('.'), setterName, field.getElementName(), typeName, argname, accessorName, lineDelim);
  ISourceRange sr = field.getJavadocRange();
  if( null != sr )
  comment = field.getSource().substring( 0, sr.getLength() );


getGetterStub函數修改的地方為:
將原:
  if(addComments)
  {
  String comment = CodeGeneration.getGetterComment(field.getCompilationUnit(), parentType.getTypeQualifiedName('.'), getterName, field.getElementName(), typeName, accessorName, lineDelim);

修改為:
  if(addComments)
  {
  String comment = CodeGeneration.getGetterComment(field.getCompilationUnit(), parentType.getTypeQualifiedName('.'), getterName, field.getElementName(), typeName, accessorName, lineDelim);
  ISourceRange sr = field.getJavadocRange();
  if( null != sr )
  comment = field.getSource().substring( 0, sr.getLength() );


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM