编码规范系列(一):Eclipse Code Templates设置
从工作开始,经历了几个项目的开发,现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范。俗话说约定优于配置,但是在执行过程中往往发现效果不是很好(主要是指编码规范这一方面)。所以我们不得不采取一些措施来协助我们统一项目开发人员的编码风格。主要包括三个方面:设置Code Templates、Eclipse formatter、Checkstyle,本篇主要介绍如何设置Code Templates,具体步骤如下:
打开Window->Preferences->Java->Code Style->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文件注释)
- /**
- * Project Name:${project_name}
- * File Name:${file_name}
- * Package Name:${package_name}
- * Date:${date}${time}
- * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.
- *
- */
Comments-->Types(Java类注释)
- /**
- * ClassName: ${type_name} <br/>
- * Function: ${todo} ADD FUNCTION. <br/>
- * Reason: ${todo} ADD REASON(可选). <br/>
- * date: ${date} ${time} <br/>
- *
- * @author ${user}
- * @version ${enclosing_type}${tags}
- * @since JDK 1.6
- */
Comments-->Fields(类字段注释)
- /**
- * ${field}:${todo}(用一句话描述这个变量表示什么).
- * @since JDK 1.6
- */
Comments-->Constructors(构造函数注释)
- /**
- * Creates a new instance of ${enclosing_type}.
- *
- * ${tags}
- */
Comments-->Methods(Java方法注释)
- /**
- * ${enclosing_method}:(这里用一句话描述这个方法的作用). <br/>
- * ${todo}(这里描述这个方法适用条件 – 可选).<br/>
- * ${todo}(这里描述这个方法的执行流程 – 可选).<br/>
- * ${todo}(这里描述这个方法的使用方法 – 可选).<br/>
- * ${todo}(这里描述这个方法的注意事项 – 可选).<br/>
- *
- * @author ${user}
- * ${tags}
- * @since JDK 1.6
- */
Comments-->Overriding methods(重写方法注释)
- /**
- * ${todo} 简单描述该方法的实现功能(可选).
- * ${see_to_overridden}
- */
Comments-->Delegate methods(代理方法注释)
- /**
- * ${tags}
- * ${see_to_target}
- */
Comments-->Getters(Java Getter方法注释)
- /**
- * ${bare_field_name}.
- *
- * @return the ${bare_field_name}
- * @since JDK 1.6
- */
Comments-->Setters(Java Setters方法注释)
- /**
- * ${param}.
- *
- * @param ${param} the ${bare_field_name} to set
- * @since JDK 1.6
- */
Code-->New Java files(新建java文件代码模板)
- /**
- * Project Name:${project_name}
- * File Name:${file_name}
- * Package Name:${package_name}
- * Date:${date}${time}
- * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.
- *
- */
- ${filecomment}
- ${package_declaration}
- /**
- * ClassName:${type_name} <br/>
- * Function: ${todo} ADD FUNCTION. <br/>
- * Reason: ${todo} ADD REASON. <br/>
- * Date: ${date} ${time} <br/>
- * @author ${user}
- * @version
- * @since JDK 1.6
- * @see
- */
- ${typecomment}
- ${type_declaration}
Code-->Method body(方法体模板)
- // ${todo} Auto-generated method stub
- ${body_statement}
Code-->Constructor body(构造函数模板)
- ${body_statement}
- // ${todo} Auto-generated constructor stub
Code-->Getter body(字段Getter方法模板)
- return ${field};
Code-->Setter body(字段Setter方法模板)
- ${field} = ${param};
Code-->Catch block body(异常catch代码块模板)
- // ${todo} Auto-generated catch block
- ${exception_var}.printStackTrace();
其中codetemplates.xml内容如下:
- <?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">/**
- * ${bare_field_name}.
- *
- * @return the ${bare_field_name}
- * @since JDK 1.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">/**
- * ${param}.
- *
- * @param ${param} the ${bare_field_name} to set
- * @since JDK 1.6
- */</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">/**
- * Creates a new instance of ${enclosing_type}.
- *
- * ${tags}
- */
- </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">/**
- * Project Name:${project_name}
- * File Name:${file_name}
- * Package Name:${package_name}
- * Date:${date}${time}
- * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.
- *
- */</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">/**
- * ClassName: ${type_name} <br/>
- * Function: ${todo} ADD FUNCTION. <br/>
- * Reason: ${todo} ADD REASON(可选). <br/>
- * date: ${date} ${time} <br/>
- *
- * @author ${user}
- * @version ${enclosing_type}${tags}
- * @since JDK 1.6
- */</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">/**
- * ${field}:${todo}(用一句话描述这个变量表示什么).
- * @since JDK 1.6
- */</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">/**
- * ${enclosing_method}:(这里用一句话描述这个方法的作用). <br/>
- * ${todo}(这里描述这个方法适用条件 – 可选).<br/>
- * ${todo}(这里描述这个方法的执行流程 – 可选).<br/>
- * ${todo}(这里描述这个方法的使用方法 – 可选).<br/>
- * ${todo}(这里描述这个方法的注意事项 – 可选).<br/>
- *
- * @author ${user}
- * ${tags}
- * @since JDK 1.6
- */</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">/**
- * ${todo} 简单描述该方法的实现功能(可选).
- * ${see_to_overridden}
- */</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">/**
- * ${tags}
- * ${see_to_target}
- */</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">/**
- * Project Name:${project_name}
- * File Name:${file_name}
- * Package Name:${package_name}
- * Date:${date}${time}
- * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.
- *
- */
- ${filecomment}
- ${package_declaration}
- /**
- * ClassName:${type_name} <br/>
- * Function: ${todo} ADD FUNCTION. <br/>
- * Reason: ${todo} ADD REASON. <br/>
- * Date: ${date} ${time} <br/>
- * @author ${user}
- * @version
- * @since JDK 1.6
- * @see
- */
- ${typecomment}
- ${type_declaration}
- </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">
- </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">
- </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">
- </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">
- </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">
- // ${todo} Auto-generated catch block
- ${exception_var}.printStackTrace();
- </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">
- // ${todo} Auto-generated method stub
- ${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">
- ${body_statement}
- // ${todo} Auto-generated constructor stub
- </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就可以方便地生成我们自定义的注释,开发人员也容易接受!
编码规范系列(一):Eclipse Code Templates设置的更多相关文章
- (转)编码规范系列(一):Eclipse Code Templates设置
背景:长久以来,对java编程中的注释不甚理解.再次学习<疯狂JAVA讲义>基础,深深的感到自己基本功的不牢固.所以要做到事无巨细,好好修炼. 认识注释 常识 注释的作用: 回顾原有的代码 ...
- 编码规范:Eclipse Code Templates设置
现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范.设置Code Templates的目的主要是为了统一各种注释的格式以及代码的模板 ...
- Eclipse Code Templates设置
从工作开始,经历了几个项目的开发,现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范.俗话说约定优于配置,但是在执行过程中往往发现效 ...
- eclipse code templates 设置(eclipse注释模版配置)
文件(Files)注释标签:/** * @Title: ${file_name} * @Package ${package_name} * @Description: ${todo} * Copyri ...
- 编码规范系列(二):Eclipse Checkstyle配置
http://chenzhou123520.iteye.com/blog/1627618 上一篇介绍了<编码规范系列(一):Eclipse Code Templates设置>,这篇主要介绍 ...
- Eclipse编码规范——Code Templates设置
Eclipse编码规范——Code Templates设置 Eclipse编码规范主要包括三个方面:设置Code Templates.Eclipse formatter.Checkstyle, 本篇主 ...
- Eclipse Code Template 设置自动加注释(转)
Eclipse Code Template 设置自动加注释 设置注释模板的入口: Window->Preference->Java->Code Style->Code Temp ...
- 编码规范(一)之Code Templates的设置(转)
编码规范(一)之Code Templates的设置 基于公司的主流开发工具为eclipse,但每个人都有自己的编码习惯,为了统一格式,这里通过三个方面:设置Code Templates.Checkst ...
- 编码规范(二)之Code Templates的设置(转)
http://swiftlet.net/archives/1199 编码规范(二)之Code Templates的设置(转) 文件(Files)注释标签:/** * @Title: ${file_na ...
随机推荐
- OK335xS mac address hacking
/*********************************************************************** * OK335xS mac address hacki ...
- jQuery的威力
jQuery如此之好用,和其在获取对象时使用与CSS选择器兼容的语法有很大关系,毕竟CSS选择器大家都很熟悉(关于CSS选择器可以看看十分钟搞定CSS选择器),但其强大在兼容了CSS3的选择器,甚至多 ...
- 聚焦 SQL 数据库活动异地复制
Tobias Ternstrom US-DS-PM 首席部门项目经理 本文作为一系列业务连续性和灾难恢复文章的开篇,概述了业务连续性的各种场景,然后重点介绍 SQL 数据库高级服务级别提供的活动异地 ...
- 【树状数组(二叉索引树)】轻院热身—candy、NYOJ-116士兵杀敌(二)
[概念] 转载连接:树状数组 讲的挺好. 这两题非常的相似,查询区间的累加和.更新结点.Add(x,d) 与 Query(L,R) 的操作 [题目链接:candy] 唉,也是现在才发现这题用了这个知识 ...
- spoj 694(后缀数组)
题意:求一个字符串的不重复子串的个数. 分析:对于下标为i的位置,能够产生的前缀子串个数为len-i(下标从0开始),对于与它字典序相邻的后缀产生的子串是重复的(就是他们的最长公共前缀),所以我们要减 ...
- hdu 1175(广搜)
题意:容易理解... 思路:我开始的思路不好实现,而且有漏洞,时间复杂度也高,后来在网上学了下别人的方法,真心感觉很牛B,不仅代码好实现,而且时间复杂度比较低,具体看代码实现吧!! 代码实现: #in ...
- 仿it快播顶部button点击背景滑动切换的效果
最近在it快播中看见它顶部的几个button可以点击后 背景会滑动到相应的button后面 就得很好看 就想办法实现了那效果 思路 大概就是通过view的叠加 把3个button通过RelativeL ...
- Java进程占用CPU资源过多分析
问题描述: 生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高. 问题分析: 1,程序属于CPU密集型,和开发沟通 ...
- 关于CodeBlocks中stdc++-6.dll缺失的小问题
前一阵子在用CodeBlocks刷OJ(也并不是什么很难的算法,背包问题而已)时,遇到了个小麻烦,按下F9编译运行(有的人习惯用鼠标去点那个小button,多麻烦啊)后,Windows给我跳出个小窗说 ...
- android:照片涂画功能实现过程及原理
这个功能可以帮你实现,在图片上进行随意的涂抹,可以用于SNS产品. 绘图本身很简单,但是要实现在图片上指定的部分精确(位置,缩放)的绘图,就有点麻烦了. 下面讲讲实现过程及原理: UI构图 这个UI, ...