博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编码规范系列(一):Eclipse Code Templates设置
阅读量:5026 次
发布时间:2019-06-12

本文共 9251 字,大约阅读时间需要 30 分钟。

从工作开始,经历了几个项目的开发,现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范。俗话说约定优于配置,但是在执行过程中往往发现效果不是很好(主要是指编码规范这一方面)。所以我们不得不采取一些措施来协助我们统一项目开发人员的编码风格。主要包括三个方面:设置Code Templates、Eclipse formatter、Checkstyle,本篇主要介绍如何设置Code Templates,具体步骤如下:

 

打开Window->Preferences->Java->Code Style->Code Templates

Eclipse设置Code Templates

点击"Import",导入模板codetemplates.xml文件。

codetemplates.xml内容是我们自己预先定义好的,在这里先不详细描述,我们可以看到Eclipse Code Templates界面中间Configure generated code and comments区域包含了两个菜单树:Comment、Code,如下图所示:

Comments代表注释模板,Code代表代码模板,其中每一个子菜单代表子项的模板。

我们只要点击某一个子项,就会在界面下方的Pattern区域看到该项我们所定义的模板内容和格式,如下图所示:

如上图所示,当我们点击Comments下的Files子菜单时,下面的Pattern会显示Java文件的头部注释。

下面详细列出每一个子项的模板格式:

Comments-->Files(Java文件注释)

Java代码  
  1. /** 
  2.  * Project Name:${project_name} 
  3.  * File Name:${file_name} 
  4.  * Package Name:${package_name} 
  5.  * Date:${date}${time} 
  6.  * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved. 
  7.  * 
  8.  */  

Comments-->Types(Java类注释)

Java代码  
  1. /** 
  2.  * ClassName: ${type_name} <br/> 
  3.  * Function: ${todo} ADD FUNCTION. <br/> 
  4.  * Reason: ${todo} ADD REASON(可选). <br/> 
  5.  * date: ${date} ${time} <br/> 
  6.  * 
  7.  * @author ${user} 
  8.  * @version ${enclosing_type}${tags} 
  9.  * @since JDK 1.6 
  10.  */  

Comments-->Fields(类字段注释)

Java代码  
  1. /** 
  2.  * ${field}:${todo}(用一句话描述这个变量表示什么). 
  3.  * @since JDK 1.6 
  4.  */  

Comments-->Constructors(构造函数注释)

Java代码  
  1. /** 
  2.  * Creates a new instance of ${enclosing_type}. 
  3.  * 
  4.  * ${tags} 
  5.  */  

Comments-->Methods(Java方法注释)

Java代码  
  1. /** 
  2.  * ${enclosing_method}:(这里用一句话描述这个方法的作用). <br/> 
  3.  * ${todo}(这里描述这个方法适用条件 – 可选).<br/> 
  4.  * ${todo}(这里描述这个方法的执行流程 – 可选).<br/> 
  5.  * ${todo}(这里描述这个方法的使用方法 – 可选).<br/> 
  6.  * ${todo}(这里描述这个方法的注意事项 – 可选).<br/> 
  7.  * 
  8.  * @author ${user} 
  9.  * ${tags} 
  10.  * @since JDK 1.6 
  11.  */  

Comments-->Overriding methods(重写方法注释)

Java代码  
  1. /** 
  2.  * ${todo} 简单描述该方法的实现功能(可选). 
  3.  * ${see_to_overridden} 
  4.  */  

Comments-->Delegate methods(代理方法注释)

Java代码  
  1. /** 
  2.  * ${tags} 
  3.  * ${see_to_target} 
  4.  */  

Comments-->Getters(Java Getter方法注释)

Java代码  
  1. /** 
  2.  * ${bare_field_name}. 
  3.  * 
  4.  * @return  the ${bare_field_name} 
  5.  * @since   JDK 1.6 
  6.  */  

Comments-->Setters(Java Setters方法注释)

Java代码  
  1. /** 
  2.  * ${param}. 
  3.  * 
  4.  * @param   ${param}    the ${bare_field_name} to set 
  5.  * @since   JDK 1.6 
  6.  */  

Code-->New Java files(新建java文件代码模板)  

Java代码  
  1. /** 
  2.  * Project Name:${project_name} 
  3.  * File Name:${file_name} 
  4.  * Package Name:${package_name} 
  5.  * Date:${date}${time} 
  6.  * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved. 
  7.  * 
  8. */  
  9. ${filecomment}  
  10.   
  11. ${package_declaration}  
  12. /** 
  13.  * ClassName:${type_name} <br/> 
  14.  * Function: ${todo} ADD FUNCTION. <br/> 
  15.  * Reason:   ${todo} ADD REASON. <br/> 
  16.  * Date:     ${date} ${time} <br/> 
  17.  * @author   ${user} 
  18.  * @version   
  19.  * @since    JDK 1.6 
  20.  * @see       
  21.  */  
  22. ${typecomment}  
  23. ${type_declaration}  

Code-->Method body(方法体模板)

Java代码  
  1. // ${todo} Auto-generated method stub  
  2. ${body_statement}  

Code-->Constructor body(构造函数模板)

Java代码  
  1. ${body_statement}  
  2. // ${todo} Auto-generated constructor stub  

Code-->Getter body(字段Getter方法模板)

Java代码  
  1. return ${field};  

Code-->Setter body(字段Setter方法模板)

Java代码  
  1. ${field} = ${param};  

Code-->Catch block body(异常catch代码块模板)  

Java代码  
  1. // ${todo} Auto-generated catch block  
  2. ${exception_var}.printStackTrace();  
 

其中codetemplates.xml内容如下:

Xml代码  
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="false" context="gettercomment_context" deleted="false" description="Comment for getter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name="gettercomment">/**  
  2.  * ${bare_field_name}.  
  3.  *  
  4.  * @return  the ${bare_field_name}  
  5.  * @since   JDK 1.6  
  6.  */</template><template autoinsert="false" context="settercomment_context" deleted="false" description="Comment for setter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.settercomment" name="settercomment">/**  
  7.  * ${param}.  
  8.  *  
  9.  * @param   ${param}    the ${bare_field_name} to set  
  10.  * @since   JDK 1.6  
  11.  */</template><template autoinsert="false" context="constructorcomment_context" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name="constructorcomment">/**  
  12.  * Creates a new instance of ${enclosing_type}.  
  13.  *  
  14.  * ${tags}  
  15.  */  
  16. </template><template autoinsert="false" context="filecomment_context" deleted="false" description="Comment for created Java files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.filecomment" name="filecomment">/**  
  17.  * Project Name:${project_name}  
  18.  * File Name:${file_name}  
  19.  * Package Name:${package_name}  
  20.  * Date:${date}${time}  
  21.  * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.  
  22.  *  
  23.  */</template><template autoinsert="false" context="typecomment_context" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.typecomment" name="typecomment">/**  
  24.  * ClassName: ${type_name} &lt;br/&gt;  
  25.  * Function: ${todo} ADD FUNCTION. &lt;br/&gt;  
  26.  * Reason: ${todo} ADD REASON(可选). &lt;br/&gt;  
  27.  * date: ${date} ${time} &lt;br/&gt;  
  28.  *  
  29.  * @author ${user}  
  30.  * @version ${enclosing_type}${tags}  
  31.  * @since JDK 1.6  
  32.  */</template><template autoinsert="false" context="fieldcomment_context" deleted="false" description="Comment for fields" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name="fieldcomment">/**  
  33.  * ${field}:${todo}(用一句话描述这个变量表示什么).  
  34.  * @since JDK 1.6  
  35.  */</template><template autoinsert="false" context="methodcomment_context" deleted="false" description="Comment for non-overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name="methodcomment">/**  
  36.  * ${enclosing_method}:(这里用一句话描述这个方法的作用). &lt;br/&gt;  
  37.  * ${todo}(这里描述这个方法适用条件 – 可选).&lt;br/&gt;  
  38.  * ${todo}(这里描述这个方法的执行流程 – 可选).&lt;br/&gt;  
  39.  * ${todo}(这里描述这个方法的使用方法 – 可选).&lt;br/&gt;  
  40.  * ${todo}(这里描述这个方法的注意事项 – 可选).&lt;br/&gt;  
  41.  *  
  42.  * @author ${user}  
  43.  * ${tags}  
  44.  * @since JDK 1.6  
  45.  */</template><template autoinsert="false" context="overridecomment_context" deleted="false" description="Comment for overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name="overridecomment">/**  
  46.  * ${todo} 简单描述该方法的实现功能(可选).  
  47.  * ${see_to_overridden}  
  48.  */</template><template autoinsert="true" context="delegatecomment_context" deleted="false" description="Comment for delegate methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name="delegatecomment">/**  
  49.  * ${tags}  
  50.  * ${see_to_target}  
  51.  */</template><template autoinsert="false" context="newtype_context" deleted="false" description="Newly created files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.newtype" name="newtype">/**  
  52.  * Project Name:${project_name}  
  53.  * File Name:${file_name}  
  54.  * Package Name:${package_name}  
  55.  * Date:${date}${time}  
  56.  * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.  
  57.  *  
  58. */  
  59. ${filecomment}  
  60.   
  61. ${package_declaration}  
  62. /**  
  63.  * ClassName:${type_name} &lt;br/&gt;  
  64.  * Function: ${todo} ADD FUNCTION. &lt;br/&gt;  
  65.  * Reason:   ${todo} ADD REASON. &lt;br/&gt;  
  66.  * Date:     ${date} ${time} &lt;br/&gt;  
  67.  * @author   ${user}  
  68.  * @version    
  69.  * @since    JDK 1.6  
  70.  * @see        
  71.  */  
  72. ${typecomment}  
  73. ${type_declaration}  
  74. </template><template autoinsert="true" context="classbody_context" deleted="false" description="Code in new class type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.classbody" name="classbody">  
  75. </template><template autoinsert="true" context="interfacebody_context" deleted="false" description="Code in new interface type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name="interfacebody">  
  76. </template><template autoinsert="true" context="enumbody_context" deleted="false" description="Code in new enum type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.enumbody" name="enumbody">  
  77. </template><template autoinsert="true" context="annotationbody_context" deleted="false" description="Code in new annotation type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name="annotationbody">  
  78. </template><template autoinsert="true" context="catchblock_context" deleted="false" description="Code in new catch blocks" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.catchblock" name="catchblock">  
  79. // ${todo} Auto-generated catch block  
  80. ${exception_var}.printStackTrace();  
  81. </template><template autoinsert="false" context="methodbody_context" deleted="false" description="Code in created method stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodbody" name="methodbody">  
  82. // ${todo} Auto-generated method stub  
  83. ${body_statement}</template><template autoinsert="true" context="constructorbody_context" deleted="false" description="Code in created constructor stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name="constructorbody">  
  84. ${body_statement}  
  85. // ${todo} Auto-generated constructor stub  
  86. </template><template autoinsert="true" context="getterbody_context" deleted="false" description="Code in created getters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.getterbody" name="getterbody">return ${field};</template><template autoinsert="true" context="setterbody_context" deleted="false" description="Code in created setters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.setterbody" name="setterbody">${field} = ${param};</template></templates>  

 

设置Code Templates的目的主要是为了统一各种注释的格式以及代码的模板,只要设定好Code Templates之后利用Eclipse就可以方便地生成我们自定义的注释,开发人员也容易接受!

  •  (1.4 KB)
  • 下载次数: 808

原文:http://chenzhou123520.iteye.com/blog/1625629

转载于:https://www.cnblogs.com/tc310/p/3939474.html

你可能感兴趣的文章
基础薄弱的反思
查看>>
代码说明call和apply方法的区别 (咱们这方面讲解的少,这样的题有变式,需要举例讲解一下)...
查看>>
T-SQL 类型转换
查看>>
在eclipse中设计BPMN 2.0工作流定义的根本步骤
查看>>
Json对象与Json字符串互转(4种转换方式)
查看>>
PAT甲级1002 链表实现方法
查看>>
查看Linux信息
查看>>
Python中sys模块sys.argv取值并判断
查看>>
【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)
查看>>
并查集
查看>>
ubuntu 11.04下android开发环境的搭建!
查看>>
Bzoj 3343: 教主的魔法
查看>>
括号序列(栈)
查看>>
一件趣事
查看>>
DevExpress控件TExtLookupComboBox实现多列模糊匹配输入的方法
查看>>
atom 调用g++编译cpp文件
查看>>
H3C HDLC协议特点
查看>>
iptables 网址转译 (Network address translation,NAT)
查看>>
ios __block typeof 编译错误解决
查看>>
android 插件形式运行未安装apk
查看>>