AndroidStudio自定义注释_android 自定义注释-程序员宅基地

技术标签: studio  AndroidStudio  android  注释  

设置类创建时自动生成头部注释

  • 比如每次创建一个类自动在头部生成一个这样的头部,作为一个类的说明信息

  • 设置方法

点击设置—>Editor–>File and code Templates –>Includes—>File Header
代码:其中时间是自动获取的

/**
 * Description: 
 * Data:${DATE}-${TIME}
 * Blog:www.qiuchengjia.cn
 * Author: qiu
 */
  • 效果和步骤

设置快速生成方法注释的两种方式

在studio 中自定义模板

  • 在studio中自定义注释模板有一定的局限性,目前已知的studio的模板只能获取的时间,并不能获取返回值以及参数等信息,那是因为获取方法名的方法运行在方法内部才会生效,运行在方法外部是不能生效.
    所以在方法外部用studio自定义模板的方式有一定的局限性

  • 模板

/**
 * Description:$Method$
 * Blog: www.qiuchengjia.cn
 * Data: $Date$ $Time$
 * @author: qiu
 */
  • 点击设置—>Editor–>live Templates –>点击+号 先创建1个组 再创建一个模板
    编辑注释内容–>声明作用域

javaDoc自动生成注释

  • 如果我们想获取到方法名,参数返回值的信息,想让这些信息全部自动生成的注释里面的话,我们可以借助插件JavaDoc实现,安装插件javaDoc 安装完之后重启studio
效果

方法配置
  • 我这儿拿method的来举例。我给每个方法的注解加 一个 作者以及时间

  • @author qiu 博客:www.qiuchengjia.cn 时间:${.now?string[“yyyy-MM-dd”]}\n

  • 原始配置

/**\n
 * ${name}<#if isNotVoid> ${return}</#if>.\n
<#if element.typeParameters?has_content>         * \n
</#if>
<#list element.typeParameters as typeParameter>
         * @param <${typeParameter.name}> the type parameter\n
</#list>
<#if element.parameterList.parameters?has_content>
         *\n
</#if>
<#list element.parameterList.parameters as parameter>
         * @param ${parameter.name} the ${paramNames[parameter.name]}\n
</#list>
<#if isNotVoid>
         *\n
         * @return the ${return}\n
</#if>
<#if element.throwsList.referenceElements?has_content>
         *\n
</#if>
<#list element.throwsList.referenceElements as exception>
         * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
</#list>
 */
  • 修改之后的配置
/**\n
<#if element.typeParameters?has_content>         * \n
</#if>
<#list element.typeParameters as typeParameter>
         * @param <${typeParameter.name}> the type parameter\n
</#list>
<#if element.parameterList.parameters?has_content>
         *\n
</#if>
<#list element.parameterList.parameters as parameter>
         * @param ${parameter.name} the ${paramNames[parameter.name]}\n
</#list>
<#if isNotVoid>
         *\n
         * @return the ${return}\n
</#if>
<#if element.throwsList.referenceElements?has_content>
         *\n
</#if>
<#list element.throwsList.referenceElements as exception>
         * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
</#list>

    \n * @author qiu\n
\n *  博客:www.qiuchengjia.cn   时间:${.now?string["yyyy-MM-dd"]}\n

 */
构造函数配置
  • 原始配置
/**\n
 * Instantiates a new ${name}.\n
<#if element.parameterList.parameters?has_content>
         *\n
</#if>
<#list element.parameterList.parameters as parameter>
         * @param ${parameter.name} the ${paramNames[parameter.name]}\n
</#list>
<#if element.throwsList.referenceElements?has_content>
         *\n
</#if>
<#list element.throwsList.referenceElements as exception>
         * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
</#list>
 */
  • 修改后的配置
/**\n
<#if element.parameterList.parameters?has_content>
         *\n
</#if>
<#list element.parameterList.parameters as parameter>
         * @param ${parameter.name} the ${paramNames[parameter.name]}\n
</#list>
<#if element.throwsList.referenceElements?has_content>
         *\n
</#if>
<#list element.throwsList.referenceElements as exception>
         * @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
</#list>
\n * @author qiu\n
\n *  博客:www.qiuchengjia.cn   时间:${.now?string["yyyy-MM-dd"]}\n
 */
使用
  • 把鼠标移动到方法中,然后shift + alt + G

  • 如果是对这个类所有的方法都进行注释,就是shift + ctrl + alt + G

  • 也可以通过alt+insert来进行选择

  • shift + alt + Z是撤销当前/选择

  • shift + ctrl + alt + Z是撤销所有注释

扩展
  • 如果你对JavaDoc生成的模板如果还不满意,你还可以修改JavaDoc的模板,具体修改位置是 设置–>other—>javadoc
    里面有对应的模板,模板语言使用的是一种 freemarker的标记语言,如果有感兴趣的同学可自己开发扩展;

  • javadoc网址

参考资料

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qiuchengjia/article/details/52909651

智能推荐

【记录】宿主进程 [*.vshost.exe] & [*.vshost.exe.config]-程序员宅基地

在启动VS的时候就会有一个 ***.vshost.exe的进程,下面是关于这个进程的具体描述vshost.exe 是宿主进程文件  宿主进程文件 (.vshost.exe) 由 Visual Studio 2005使用,不应通过应用程序直接运行或部署。 宿主进程是 Visual Studio 2005中的一项功能,能提高调试性能,支持部分信任调试并支持设计时表达式计算。宿主进程文件的文

序列标注任务数据增强_标注后txt数据增强_dreampai的博客-程序员宅基地

在上一篇文章我们学习了基本的数据增强的 N 种方法,今天我们针对“序列标注”任务具体聊一聊如何数据增强?“序列标注”是一个 token-level 的分类任务,当进行全局结构化预测时候,一些增强方式产生的数据噪音可能会让“序列标注”模型变得敏感脆弱,导致评估指标下降。本文主要讲解一篇论文对“序列标注”任务的数据增强方法:DAGA: Data Augmentation with a Generation Approach forLow-resource Tagging TasksDAGA本文提出了一_标注后txt数据增强

android安全问题(四) 抢先开机启动 - 结果篇-程序员宅基地

导读:我们以如何抢先开机启动为例,来说明接收无序广播的静态广播接收器的接收顺序(注意,文本只是陈述结果,所以叫结果篇,之后的文章再给出源码分析)首先先说一下android中的广播和广播接收器广播可以分为有序、无序和sticky共三种广播接收器可以分为静态和动态两种首先我们要明确两个问题1.接收无序广播的接收器接收到广播的顺序是有序的2.接收无

什么是内部类?内部类的作用-程序员宅基地

在java语言中,可以吧一个类定义到另外一个类的内部,在类里面的这个类就叫内部类,外面的类就叫外部类。在这情况下,这个内部类可以看做外部类的一个成员。还有一种类被称为顶层类,指的是类定义代码不嵌套在其他类定义中的类。需要注意的是嵌套类与内部类类似,只是嵌套类是C++的说法。 内部类可以分为多种、;主要一下4中:静态内部类,成员内部类,局部内部类,匿名内部类代码 class outerCl...

阮琦-高情商训练营9节_阮琦+情商训练+网盘-程序员宅基地

阮琦-高情商训练营9节教程目录 第1节为何你总是get不到别人说话的点 .mp3 第2节 如何识别情绪 .mp3 第3节 如何正确的情绪响应 避免出口伤人 .mp3 第4节 把握情绪响应分寸让自己成为受欢迎的人 .mp3 第5节 如何感知和释放压抑背后的情绪 .mp3 第6节 如何把握情绪让聊天更有趣 .mp3 第7节 如何控制人际交往中的负面情绪 .m..._阮琦+情商训练+网盘

随便推点

mask_rcnn 训练自己数据——收集资料-程序员宅基地

mask_rcnn 训练自己数据欢迎使用Markdown编辑器主要参考及工具基于Mask RCNN开源项目:https://github.com/matterport/Mask_RCNN图片标记工具基于开源项目:https://github.com/wkentaro/labelme有关mask-rcnn和Faster RCNN算法可以参考:https://blog.csdn.net/l...

QT线程处理视频并播放(keyword:线程、QLabel、QTimer、Opencv)_qt 同时播放-程序员宅基地

1 使用 QTimer 和 std::thread 在QlLabel中播放视频1.1 以下为实验代码,若有纰漏敬请谅解!2 前提2.1 在QT UI 界面中建立两个 QLabel 控件。3 工程3.1 mainwindow.cpp#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new U_qt 同时播放

机器学习典型应用1--关联规则_关联规则应用场景-程序员宅基地

数据--&gt;机器学习算法---&gt;智能应用:1:关联规则(啤酒和尿片的故事)声明:  机器学习系列主要记录自己学习机器学习算法过程中的一些参考和总结,其中有部分内容是借鉴参考书籍和参考博客的。目录:什么是关联规则关联规则中的必须知道的概念关联规则的实现过程关联规则的核心点——如何生成频繁项集(Apriori算法)关联规则的核心点——如何生成频繁项集(FP-Growth算法)实际使用过程中需..._关联规则应用场景

python语言画成圆相切_python 画圆-程序员宅基地

import numpy as npimport matplotlib.pyplot as plt# ==========================================# 圆的基本信息# 1.圆半径r = 2.0# 2.圆心坐标a, b = (0., 0.)# ==========================================# 方法一:参数方程theta = ..._python画与已知圆弧相切

C++类数组批量赋值-程序员宅基地

类和结构体不同,结构体在初始化时可以使用{...}的方法全部赋值,但是结构体怎么办呢?一种是把数据数组写到一个相同的结构体内,然后for循环使用一个非构造函数写入到类数组中。另一种方法是直接写入到对应数组,例如有如下一个类:class A{char* pname;int property[5];public:void ipt(char* t,int pt[]){pname=..._c++给数组批量赋值

ROS Navigation之map_server功能包分析_map server和hector map_zzr1024的博客-程序员宅基地

1.mapserver提供了一个ROS节点,该节点通过一个ROS Service来提供地图数据 调用形式:<node pkg="map_server" name="map_server" type="map_server" args="$(arg map_file)"/>2.同时提供了一个命令行程序来动态地将生成的地图保存到文件中调用形式:map_saver [-f ] [ROS remapping args]",比如想将hector中生成的地图保存下来,可以:rosr._map server和hector map