Java注释实现

   设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍:


文件(Files)注释标签:

/**   
* @Title: ${file_name} 
* @Package ${package_name} 
* @Description: ${todo}(用一句话描述该文件做什么) 
* @author A18ccms A18ccms_gmail_com   
* @date ${date} ${time} 
* @version V1.0   
*/

类型(Types)注释标签(类的注释):

/** 
* @ClassName: ${type_name} 
* @Description: ${todo}(这里用一句话描述这个类的作用) 
* @author A18ccms a18ccms_gmail_com 
* @date ${date} ${time} 

* ${tags} 
*/

字段(Fields)注释标签:

/** 
* @Fields ${field} : ${todo}(用一句话描述这个变量表示什么) 
*/ 
构造函数标签:

/** 
* <p>Title: </p> 
* <p>Description: </p> 
* ${tags} 
*/

方法(Constructor & Methods)标签:

/** 
* @Title: ${enclosing_method} 
* @Description: ${todo}(这里用一句话描述这个方法的作用) 
* @param ${tags}    设定文件 
* @return ${return_type}    返回类型 
* @throws 
*/

覆盖方法(Overriding Methods)标签:

/* (非 Javadoc) 
* <p>Title: ${enclosing_method}</p> 
* <p>Description: </p> 
* ${tags} 
* ${see_to_overridden} 
*/

代表方法(Delegate Methods)标签:

/** 
* ${tags} 
* ${see_to_target} 
*/ 
getter方法标签:

/** 
* @return ${bare_field_name} 
*/

setter方法标签:

/** 
* @param ${param} 要设置的 ${bare_field_name} 
*/
例子: 
<?xml version="1.0" encoding="UTF-8"?> 
<templates> 
    <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"> 
    /**   
     * 创建一个新的实例 ${enclosing_type}.   
     *   
     * ${tags}   
     */   
    </template> 
    <template    
                autoinsert="true"    
                context="settercomment_context" 
                deleted="false"    
                description="Comment for setter method"    
                enabled="true"    
                id="org.eclipse.jdt.ui.text.codetemplates.settercomment"    
                name="settercomment"> 
    /**   
     * @param ${param} the ${bare_field_name} to set   
     */   
    </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"> 
    /**   
     * 此方法描述的是:   
     * @author: wangxiongdx@163.com   
     * @version: ${date} ${time}   
     */   
    </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="filecomment_context"    
                deleted="false"    
                description="Comment for created Java files"    
                enabled="true"    
                id="org.eclipse.jdt.ui.text.codetemplates.filecomment"    
                name="filecomment"> 
    /**   
     * 文件名:${file_name}   
     *   
     * 版本信息:   
     * 日期:${date}   
     * Copyright 足下 Corporation ${year}    
     * 版权所有   
     *   
     */   
    </template> 
    <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   CodingExample Ver(编码范例查看) 1.0   
    */   
    </template> 
    <template    
                autoinsert="true"    
                context="overridecomment_context"    
                deleted="false"    
                description="Comment for overriding methods"    
                enabled="true"    
                id="org.eclipse.jdt.ui.text.codetemplates.overridecomment"    
                name="overridecomment"> 
    /* (non-Javadoc)   
     * ${see_to_overridden}   
     */   
    </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 Ver 1.1   
     */   
    </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"> 
    /**   
     * 此类描述的是:   
     * @author: wangxiongdx@163.com   
     * @version: ${date} ${time}    
     */   
    </template> 
</templates> 
<?xml version="1.0" encoding="UTF-8"?> 
<templates> 
    <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"> 
    /** 
     * 创建一个新的实例 ${enclosing_type}. 
     * 
     * ${tags} 
     */ 
    </template> 
    <template 
                autoinsert="true" 
                context="settercomment_context" 
                deleted="false" 
                description="Comment for setter method" 
                enabled="true" 
                id="org.eclipse.jdt.ui.text.codetemplates.settercomment"
                name="settercomment"> 
    /** 
     * @param ${param} the ${bare_field_name} to set 
     */ 
    </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"> 
    /** 
     * 此方法描述的是: 
     * @author: wangxiongdx@163.com 
     * @version: ${date} ${time} 
     */ 
    </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="filecomment_context" 
                deleted="false" 
                description="Comment for created Java files" 
                enabled="true" 
                id="org.eclipse.jdt.ui.text.codetemplates.filecomment" 
                name="filecomment"> 
    /** 
     * 文件名:${file_name} 
     * 
     * 版本信息: 
     * 日期:${date} 
     * Copyright 足下 Corporation ${year} 
     * 版权所有 
     * 
     */ 
    </template> 
    <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   CodingExample Ver(编码范例查看) 1.0 
    */ 
    </template>

    <template 
                autoinsert="true" 
                context="overridecomment_context" 
                deleted="false" 
                description="Comment for overriding methods" 
                enabled="true" 
                id="org.eclipse.jdt.ui.text.codetemplates.overridecomment" 
                name="overridecomment"> 
    /* (non-Javadoc) 
     * ${see_to_overridden} 
     */ 
    </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 Ver 1.1 
     */ 
    </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"> 
    /** 
     * 此类描述的是: 
     * @author: wangxiongdx@163.com 
     * @version: ${date} ${time} 
     */ 
    </template> 
</templates>

MyEclipse 6.5 代码提示的设置

MyEclipse 选择 Windows ->Preperences ->General ->keys

找到 word completion的快捷键 把原alt+/删掉!//必须

把Content Assist 的快捷键 改成alt+/ 或者你想改的其他快捷键

MyEclipse编码设置

Myeclipse安装后编码默认是GB18030,一般推荐用UTF-8。如果在导入项目后发现乱码现象,那是编码设置设置不对。

全局编码设置的方法:ToolBar-->Window-->Preferences-->General-->Workspace-->Text file encoding,设置合适的编码。

局部编码设置:在源码按右键-->General-->Editors-->Test Editors-->Spelling-->Encoding,这里是设置单个文件的编码。

推荐还是使用全局编码设置。

MyEclipse设置JSP页面默认编码方式:

windows(窗口)-Preferences(首选项)-MyEclipse-Files & Editors-JSP-右侧encoding:设置为ISO10646/Unicode(UTF-8)

MyEclipse在Java文件中设置作者、日期等说明:

windows(窗口)-Preferences(首选项)-Java-Code Style(代码样式)-Code Templates(代码模版)-右侧Comments(注释)-选择Types(类型)-点击edit(编辑)-输入如下信息

/**
* @包名   ${package_name}
* @文件名 ${file_name}
* @作者   NoureWang
* @创建日期 ${date}
* @版本 V 1.0
*/

点击OK(确定)-选中左侧的代码样式-选择右侧复选框(Automatically add Comments for new Methods and types)(自动为新方法和类型添加注释)-点击Apply(应用)-点击OK(确定)

eclipse里面有一个spell check的开关,把它关了。具体操作windows->preference->输入spell

自动提示:具体操作windows->preference->输入content assist    选择Java->editor->content assist

Auto activation triggers for Java:后面输入.abcdefghijklmnopqrstuvwxyz 确定

然后导出

 

 

 

 

1、源文件注释 
源文件注释采用 /** …… */,在每个源文件的头部要有必要的注释信息,包括:文件名;文件编号;版本号;作者;创建时间;文件描述包括本文件历史修改记录等。中文注释模版:

 

Java代码  
/**   
* 文 件 名 :   
    * CopyRright (c) 2008-xxxx:   
* 文件编号:   
* 创 建 人:   
* 日    期:   
* 修 改 人:   
* 日   期:   
* 描   述:   
* 版 本 号:   
*/  

/** 
* 文 件 名 : 
    * CopyRright (c) 2008-xxxx: 
* 文件编号: 
* 创 建 人: 
* 日    期: 
* 修 改 人: 
* 日   期: 
* 描   述: 
* 版 本 号: 
*/ 

2、类(模块)注释: 
类(模块)注释采用 /** …… */,在每个类(模块)的头部要有必要的注释信息,包括:工程名;类(模块)编号;命名空间;类可以运行的JDK版本;版本号;作者;创建时间;类(模块)功能描述(如功能、主要算法、内部各部分之间的关系、该类与其类的关系等,必要时还要有一些如特别的软硬件要求等说明);主要函数或过程清单及本类(模块)历史修改记录等。 
英文注释模版:

 

Java代码  
/**   
* CopyRright (c)2008-xxxx:   <展望软件Forsoft >                            
    * Project:                     <项目工程名 >                                            
* Module ID:   <(模块)类编号,可以引用系统设计中的类编号>      
    * Comments:  <对此类的描述,可以引用系统设计中的描述>                                             
* JDK version used:      <JDK1.6>                                
* Namespace:           <命名空间>                                
* Author:        <作者中文名或拼音缩写>                   
* Create Date:  <创建日期,格式:YYYY-MM-DD>   
* Modified By:   <修改人中文名或拼音缩写>                                           
* Modified Date:  <修改日期,格式:YYYY-MM-DD>                                      
    * Why & What is modified  <修改原因描述>      
* Version:                  <版本号>                         
*/  

/** 
* CopyRright (c)2008-xxxx:   <展望软件Forsoft >                          
    * Project:                     <项目工程名 >                                          
* Module ID:   <(模块)类编号,可以引用系统设计中的类编号>    
    * Comments:  <对此类的描述,可以引用系统设计中的描述>                                           
* JDK version used:      <JDK1.6>                              
* Namespace:           <命名空间>                              
* Author:        <作者中文名或拼音缩写>                 
* Create Date:  <创建日期,格式:YYYY-MM-DD> 
* Modified By:   <修改人中文名或拼音缩写>                                         
* Modified Date:  <修改日期,格式:YYYY-MM-DD>                                    
    * Why & What is modified  <修改原因描述>    
* Version:                  <版本号>                       
*/ 

如果模块只进行部分少量代码的修改时,则每次修改须添加以下注释:

 

Java代码  
//Rewriter    
//Rewrite Date:<修改日期:格式YYYY-MM-DD> Start1:    
/* 原代码内容*/    
//End1:    
将原代码内容注释掉,然后添加新代码使用以下注释:    
//Added by    
//Add date:<添加日期,格式:YYYY-MM-DD> Start2:    
//End2:    
如果模块输入输出参数或功能结构有较大修改,则每次修改必须添加以下    
注释:    
//Log ID:<Log编号,从1开始一次增加>    
//Depiction:<对此修改的描述>    
//Writer:修改者中文名    
//Rewrite Date:<模块修改日期,格式:YYYY-MM-DD>  

//Rewriter 
//Rewrite Date:<修改日期:格式YYYY-MM-DD> Start1: 
/* 原代码内容*/ 
//End1: 
将原代码内容注释掉,然后添加新代码使用以下注释: 
//Added by 
//Add date:<添加日期,格式:YYYY-MM-DD> Start2: 
//End2: 
如果模块输入输出参数或功能结构有较大修改,则每次修改必须添加以下 
注释: 
//Log ID:<Log编号,从1开始一次增加> 
//Depiction:<对此修改的描述> 
//Writer:修改者中文名 
//Rewrite Date:<模块修改日期,格式:YYYY-MM-DD> 

3、接口注释: 
接口注释采用 /** …… */,在满足类注释的基础之上,接口注释应该包含描述接口的目的、它应如何被使用以及如何不被使用,块标记部分必须注明作者和版本。在接口注释清楚的前提下对应的实现类可以不加注释。

 

4、构造函数注释: 
构造函数注释采用 /** …… */,描述部分注明构造函数的作用,不一定有块标记部分。 
注释模版一:

 

Java代码  
/**   
* 默认构造函数   
*/    
注释模版二:    
/**   
* Description :       带参数构造函数,   
*                       初始化模式名,名称和数据源类型   
* @param schema:   模式名   
* @param name:   名称   
* @param type: 数据源类型   
*/  

/** 
* 默认构造函数 
*/ 
注释模版二: 
/** 
* Description :       带参数构造函数, 
*                       初始化模式名,名称和数据源类型 
* @param schema:   模式名 
* @param name:   名称 
* @param type: 数据源类型 
*/ 

5、函数注释: 
函数注释采用 /** ……*/,在每个函数或者过程的前面要有必要的注释信息,包括:函数或过程名称;功能描述;输入、输出及返回值说明;调用关系及被调用关系说明等。函数注释里面可以不出现版本号(@version)。 
注释模版一:

 

Java代码  
/**   
  * 函 数 名 :   
  * 功能描述:   
* 输入参数:     <按照参数定义顺序>   
*             <@param后面空格后跟着参数的变量名字   
*            (不是类型),空格后跟着对该参数的描述。>   
*   
* 返 回 值:  - 类型 <说明>   
*            <返回为空(void)的构造函数或者函数,   
*            @return可以省略; 如果返回值就是输入参数,必须 *            用与输入参数的@param相同的描述信息; 必要的时*            候注明特殊条件写的返回值。>   
* 异    常:<按照异常名字的字母顺序>   
* 创 建 人:   
* 日    期:   
* 修 改 人:   
* 日    期:   
*/  

/** 
  * 函 数 名 : 
  * 功能描述: 
* 输入参数:     <按照参数定义顺序> 
*             <@param后面空格后跟着参数的变量名字 
*            (不是类型),空格后跟着对该参数的描述。> 

* 返 回 值:  - 类型 <说明> 
*            <返回为空(void)的构造函数或者函数, 
*            @return可以省略; 如果返回值就是输入参数,必须 *            用与输入参数的@param相同的描述信息; 必要的时*            候注明特殊条件写的返回值。> 
* 异    常:<按照异常名字的字母顺序> 
* 创 建 人: 
* 日    期: 
* 修 改 人: 
* 日    期: 
*/ 

注释模版二:

 

Java代码  
/**   
* FunName:           getFirstSpell   
  * Description :      获取汉字拼音首字母的字符串,   
*                   被生成百家姓函数调用   
  * @param:         str the String是包含汉字的字符串   
  * @return String:汉字返回拼音首字母字符串;   
*                  英文字母返回对应的大写字母;   
*                 其他非简体汉字返回 '0';   
* @Author:       ghc   
* @Create Date: 2008-07-02   
*/  

/** 
* FunName:           getFirstSpell 
  * Description :      获取汉字拼音首字母的字符串, 
*                   被生成百家姓函数调用 
  * @param:         str the String是包含汉字的字符串 
  * @return String:汉字返回拼音首字母字符串; 
*                  英文字母返回对应的大写字母; 
*                 其他非简体汉字返回 '0'; 
* @Author:       ghc 
* @Create Date: 2008-07-02 
*/ 

6、方法注释: 
方法注释采用 /** …… */,对于设置 (Set 方法 ) 与获取 (Get 方法 ) 成员的方法,在成员变量已有说明的情况下,可以不加注释;普通成员方法要求说明完成什么功能,参数含义是什么且返回值什么;另外方法的创建时间必须注释清楚,为将来的维护和阅读提供宝贵线索。

 

7、方法内部注释: 
控制结构,代码做了些什么以及为什么这样做,处理顺序等,特别是复杂的逻辑处理部分,要尽可能的给出详细的注释。 
    
8、 全局变量注释: 
要有较详细的注释,包括对其功能、取值范围、哪些函数或者过程存取以及存取时注意事项等的说明。

 

9、局部(中间)变量注释: 
主要变量必须有注释,无特别意义的情况下可以不加注释。

 

10、实参/参数注释: 
参数含义、及其它任何约束或前提条件。

 

11、字段/属性注释: 字段描述,属性说明。

 

12、常量:常量通常具有一定的实际意义,要定义相应说明。

文章转载至 http://www.javalearns.com/Html/?1373.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值