IDEA工具第二篇:自定义Java方法注释模板 | 京东云技术团队

news2024/12/23 12:54:53

网上搜索类似的文章有很多,但是一味的复制粘贴总会出现各种奇葩问题,最后然并卵!今天特意自己研究琢磨一下,将最终结果分享给大家,100%亲测可用。

一、说明

想必大家都用过Eclipse的方法注释生成,方法上输入 /**,回车走你,巴拉巴拉如下的注释便生成了,今天就悄悄告诉大家如何自定义这样的模板生成,一般人我可不告诉他😂,快捷的注释模板势必会提升一定的工作效率。

/**
 * 查询学生基本信息
 *
 * @param studentId   学生ID
 * @param studentType V学生类型
 * @return 学生展示对象
 * @author admin
 * @date 2023/06/18 6:18
 */
 public StudentVO queryStudentInfo(Long studentId, Integer studentType) {
     // 省略。。。。。。
 }


二、增加注释模板

1、首先

打开IDEA设置Settings…(Windows快捷键:Ctrl + Alt + S,Mac快捷键:command + ,)—> Editor —> Live Templates —> 点击右侧加号"+"

2、然后

设置以下六处相应的内容

以上6处需要注意的地方:

Abbreviation:快捷缩略词,可以输入数值、字母、符号,到时配合 /* 使用(依模板内容而定),例如你输入一个,那么到时候输入/回车即可,以下为本人设置内容(👈此处是关键核心设置内容_)_*

*


Description:实时模板的说明文字,提示显示用,以下为本人设置内容

java方法注释快捷操作


Edit variables:编辑变量按钮,默认灰色不可编辑,只有④中输入了带有 $参数$ 的变量时才会解锁,以下为本人设置内容

param:

由于默认的表达式 methodParameters() 生成的多参数在同一行显示,且格式为 [参数名1, 参数名2…] 这种风格,此处进行改造自定义groovy脚本生成参数列表(👈此处是关键核心设置内容

groovyScript("def result=''; def stop=false; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); if (params.size()==1 && (params[0]==null || params[0]=='null' || params[0]=='')) { stop=true; }; if(!stop) { for(i=0; i < params.size(); i++) {if(i==0) result += '\\n'; result +=((i < params.size() - 1) ? ' * @param ' + params[i] + '\\r\\n' : ' * @param ' + params[i] + '')}; }; return result;", methodParameters())


return:

由于默认的表达式 methodReturnType()不返回void类型,此处若想设置成无返回值也返回[@return](https://my.oschina.net/u/556800) void可以通过自定义groovy脚本(👈此处是关键核心设置内容

groovyScript("def result=''; def data=\"${_1}\"; def stop=false; if(data==null || data=='null' || data=='' || data=='void') { stop=true; }; if(!stop) { result += '\\n'; result += ' * @return ' + data; }; return result;", methodReturnType()) 


date:

对日期格式有要求的,可以在Expression列中对date()加参,以下为本人设置内容

date("yyyy/MM/dd HH:mm")


Template text:模板内容,即自定义注释展示内容,以下为本人设置内容(👈此处是关键核心设置内容

*
 * 一句话描述该方法的作用 $param$  $return$
 * @author admin
 * @date $date$
 */


第一行默认无缩进一个*号,从第二行开始默认缩进一个空格,其中$param$$return$前面不加*号(因为在具体的参数方法里面已做处理),和其它非第一行*号保持对齐。此处格式一定要使用这种,因为会配合下面的groovy脚本解析使用。若修改该内容,切记同时修改相应的groovy脚本,否则生成的注释不堪入目😩。

Applicable contexts:应用于哪个位置,由于此次操作为Java,固只在Java前挑勾应用,以下为本人设置内容

勾选Java下的Comment


Options:其他参数,包括格式化、展开方式等,以下为本人设置内容

Expand with选择Enter,勾选Reformat according to style和Shorten FQ names


3、最后

放上一张设置好的成品图,同时测试一下自定义方法注释,在方法前面输入/**,然后按回车Enter即可

3.1、多个参数有返回值:
/**
 * 一句话描述该方法的作用 
 * @param name
 * @param type
 * @return java.lang.Object
 * @author admin
 * @date 2023/08/15 16:28
 */
public Object selectInfoTest(String name, Integer type) { 
    return null;
}


3.2、多个参数无返回值:
/**
 * 一句话描述该方法的作用 
 * @param name
 * @param id
 * @author admin
 * @date 2023/08/15 16:28
 */
public void deleteInfoTest(String name, Integer id) { }


3.3、无参数无返回值:
/**
 * 一句话描述该方法的作用   
 * @author admin
 * @date 2023/08/15 16:29
 */
public void initInfoTest() { }


3.4、单一参数无返回值:
/**
 * 一句话描述该方法的作用 
 * @param id
 * @author admin
 * @date 2023/08/15 20:36
 */
 public void initInfoByIdTest(Integer id) { }


三、总结

完美落幕,如果什么地方有不妥之处,请评论区留言或者私信。

作者:京东零售 马宏伟

来源:京东云开发者社区 转载请注明来源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1126298.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django结合Celery进行异步调用

目录 Celery介绍 相关环境 相关配置 1、在proj/proj/目录下创建一个新的celery.py模块 定义 Celery 实例&#xff1a; 2、在proj/proj/__init__.py 模块中导入这个应用程序。 3、在各自模块中定义任务文件tasks.py 4、settings.py配置 服务启动 异步调用 Celery介绍 C…

ChatGPT AIGC 办公自动化拆分Excel工作表

在职场办公中对数据的操作,经常需要将一份表格数据拆分成多个表。 但是在Excel中进行表格拆分的步骤比较多。 在Excel中拆分工作表的步骤: 1.打开您的Excel工作簿,选择您要拆分的工作表。 2.右键单击工作表标签(通常在底部),选择“移动或复制”。 3.在“移动或复制”…

SpringCloud和Kubernetes的区别

又见小道仙&#xff1a; https://blog.csdn.net/Tomwildboar/article/details/129531315 对于SpringCloud在实际项目中并未使用过&#xff0c;只是自学过SpringCloud和SpringCloud Alibaba&#xff0c;也基于学习搭建过demo。 对于Kubernetes&#xff0c;目前这家公司就是使用…

SpringBoot引入包报红,无法使用Maven依赖

今天又是一年一度的程序员节&#xff0c;希望各位编码的小伙伴们能够健健康康&#xff0c;开开心心。 最近弄了一个SpringBoot项目&#xff0c;今天拉取代码的时候发现文件都变成了这样子 平时常用的依赖包都用不了了&#xff0c;重新加载&#xff0c;重新install都无效&#…

浏览器标签上添加icon图标;html引用ico文件

实例 <link rel"shortcut icon" href"./XXX.ico" type"image/x-icon">页面和图标在同一目录内 则 <link rel"shortcut icon" type"text/css" href"study.ico"/>可以阿里矢量图库关键字搜索下载自己…

【tg】9 : InstanceImpl 、 虚拟的音频渲染设备FakeAudioDeviceModuleImpl

代码分布 WebRTC-Manager 线程:manager线程 G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\InstanceImpl.h Manager 使用的是 WebRTC-Manager 线程 InstanceImpl 对Manager 的封装和调用 #

【ESP-BOX-LITE】:照片查看器

目录 项目场景&#xff1a; 项目需求描述&#xff1a; 项目技术&#xff1a; 项目成果&#xff1a; 项目总结&#xff1a; 项目视频&#xff1a; 芳香 项目场景&#xff1a; 使用ESP-BOX-LITE实现照片查看器功能&#xff0c;显示多级目录下的图片或文件夹&#xff0c;自…

Mac风扇控制电脑降温软件Macs Fan Control Pro 简体中文

Macs Fan Control Pro是一款功能强大的Mac风扇控制软件&#xff0c;旨在帮助用户更好地管理和控制Mac电脑的风扇速度和温度传感器。以下是该软件的主要特色介绍&#xff1a; 监测和调整Mac电脑的风扇速度和温度传感器&#xff0c;帮助用户控制设备温度&#xff0c;提高电脑性能…

浅谈RabbitMQ的延迟队列

Part 01、 延迟队列是什么 延迟队列代表了一种强大的消息传递机制&#xff0c;允许我们在将消息发送至RabbitMQ时&#xff0c;规定它们只能在未来某个预定的时间点被消费。这种特殊类型的消息被简称为"延迟消息"。 以RabbitMQ为例&#xff0c;它允许我们通过延迟…

【LeetCode:637. 二叉树的层平均值 | bfs】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

用nodejs爬虫台湾痞客邦相册

情景:是这样的,我想保存一些喜欢的小伙伴的照片,一张张保存太慢了, 所以我写了个js,放在国外服务器爬,国内的自己解决~ 使用方法 1.点相册随便一张, 复制url, 这张开始接下来的图片都会保存 /*** 2023年10月23日 22:58:44* 支持解析痞客邦相册* 只需要复制相册第一张图片的ur…

uni-app:多种方法写入图片路径

一、文件在前端文件夹中 1、相对路径引用 从当前文件所在位置开始寻找图片文件的路径。../../ 表示返回两级目录&#xff0c;即从当前文件所在的 wind.vue 所在的位置开始向上回退两级。接着&#xff0c;进入 static 目录&#xff0c;再进入 look 目录&#xff0c;最后定位到 …

如何提高决策能力?目标导向是关键

决策能力是一项综合性较强的素质&#xff0c;有信息收集&#xff0c;信息加工处理到信息输出&#xff0c;形成判断和选择的能力。决策能力不仅仅是指职场领导者的决策能力&#xff0c;其实在日常生活中同样需要决策能力&#xff0c;简单的理解就是信息分析&#xff0c;判断和选…

计算机毕设 大数据二手房数据爬取与分析可视化 -python 数据分析 可视化

# 1 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通…

强化学习代码实战(1)

机器人领域&#xff1a;控制&#xff0c;规划&#xff0c;感知等都可以用&#xff0c;可以把它作为一个优化过程&#xff0c;那么任何需要优化的问题都可以用它解决。 1.应用 深度学习&#xff1a;智能感知&#xff0c;解决智能如何理解这个世界的问题。 强化学习&#xff1a…

RK3588平台开发系列讲解(显示篇)MIPI DSI协议介绍之分层

🚀返回专栏总目录 文章目录 一、MIPI DSI 分层1.1、应用层1.2、协议层1.3、链路层1.4、物理层沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 DSI 全称是 Display Serial Interface,是主控和显示模组之间的串行连接接口。 MIPI DSI 接口分为数据线和时钟线,均为…

螺旋矩阵的探索

输出n阶螺旋矩阵中指定位置的元素值 问题描述&#xff1a; 问题分析&#xff1a; 经观察&#xff0c;易知螺旋矩阵由内层至外层依次递减&#xff0c;为以 n 2 n^2 n2为首项&#xff0c;以-1为公差的等差数列 。分奇数阶和偶数阶矩阵分类讨论&#xff0c;分别归纳得 n 2 n^2 n…

大数据Flink(一百零一):SQL 表值函数(Table Function)

文章目录 SQL 表值函数(Table Function) SQL 表值函数(Table Function) Python UDTF,即 Python TableFunction,针对每一条输入数据,Python UDTF 可以产生 0 条、1 条或者多条输出数据,此外,一条输出数据可以包含多个列。比如以下示例,定义了一个名字为 split 的Pyt…

Docker命令手册

大家好&#xff0c;我叫徐锦桐&#xff0c;个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识&#xff0c;还有日常折腾的经验&#xff0c;欢迎大家访问。 记录平时用的比较多的Docker命令。 docker学习地址 1、docker停止并删除运行的容器 首先查看…

Postgres 和 MySQL 应该怎么选?

PostgreSQL和MySQL是两个流行的关系型数据库管理系统&#xff08;DBMS&#xff09;。它们都具有一些相似的功能&#xff0c;但也有一些区别。 在选择使用哪个DBMS时&#xff0c;需要考虑多个因素&#xff0c;包括性能、可扩展性、安全性、功能丰富度、生态系统支持等。下面是对…