首页 > 编程知识 正文

idea调节字体大小快捷键,idea创建类注释

时间:2023-05-04 21:05:50 阅读:23255 作者:4751

一、课堂评论

打开IDEA的Settings,单击Editor--File and Code Templates,然后单击右侧的File选项卡下的Class,将图中红框内的内容添加到其中。

/*** @author jitwxs* @date ${YEAR}年${MONTH}月${DAY}日${TIME}*/

我提供的示例模板说明了作者和时间。 IDEA支持的所有模板参数都列在下面的说明中。

保存后,自觉的万宝路创建新类后,会自动添加类注释。 如果还想启用接口,请同时配置上图中的接口项。

二、方法评论不同于目前网络上互相复制粘贴的方法注释教程,本文将实现以下功能:

根据形状参数项目自动生成@param注释

根据方法是否有返回值智能地生成@Return注释

与类模板相比,向方法中添加注释模板更为复杂,因此首先在Settings中单击Editor--Live Templates。

单击最右边的,首先选择2. Template Group .以创建模板组。

在弹出的对话框中填写组名。 这里称为用户定义:

然后选择刚创建的模板组userDefine,单击,然后选择1. Live Template。

将创建空模板,并修改该模板的Abbreviation、Description和Template text。 需要注意的是,Abbreviation必须为*,最后检查扩展宽度的值是否为Enter键。

上图的Template text的内容如下,请直接复制。 http://www.Sina.com/http://www.Sina.com /

* * @ authorjitwxs * @您注意到date $ date $ time $ $ param $ $ return $ * /右下角的No applicable contexts yet了吗? 此时,表示此模板没有指定要应用的语言:

单击Define并在组合框中选中Java,以指示该模板将应用于所有Java类型文件。

如果设置了applicable contexts,请记住在设置Template text时包含类似$date$的参数。 此时,IDEA不知道这些参数是什么。 然后,对这些参数进行方法映射,以便IDEA理解这些参数的含义。 单击Edit variables按钮。

设置与每个参数对应的表达式。

设置Expression时必须注意的是,date和time expression使用内置于IDEA中的函数,因此可以直接在下拉框中选择,但参数param是IDEA的缺省参数代码如下。

goovyscript('defresult=' ' ); def params=' $ { _1}'.replace all (((((()|(\s )、() ) ) )、()、()、)、) i params.size (; I(if ) Params[I]!=' ' ) result=' * @ param ' params [ I ] ((iparams.size (-1 ) ) )。 rn':'}; 返回结果=='? null : '\r\n ' result ',methodParameters () )此外,还自己实现了名为return的参数。 代码如下。

groovy script (返回

"${_1}" == 'void' ? null : '\r\n * @return ' + "${_1}"", methodReturnType())

注:你还注意到我并没有勾选了 Skip if defined 属性,它的意思是如果在生成注释时候如果这一项被定义了,那么鼠标光标就会直接跳过它。我并不需要这个功能,因此有被勾选该属性。

点击 OK 保存设置,大功告成!

三、检验成果 3.1 类注释

类注释只有在新建类时才会自动生成,效果如下:

类注释 3.2 方法注释

将演示以下几种情况:

无形参

单个形参

多个形参

无返回值

有返回值

方法注释 四、Q & A

(1)为什么模板的 Abbreviation 一定要叫 * ?Expand with 要保证是 Enter 键?

答:因为 IDEA 模板的生成逻辑是 模板名 + 生成键,当生成键是 Enter 时,我们输入 * + Enter 就能够触发模板。

这也同时说明了为什么注释模板首行是一个 * 了,因为当我们先输入 /*,然后输入 * + Enter,触发模板,首行正好拼成了 /**,符合 Javadoc 的规范。

(2)注释模板中为什么有一行空的 *?

答:因为我习惯在这一行写方法说明,所以就预留了一行空的写,你也可以把它删掉。

(3)注释模板中 $time$$param$ 这两个明明不相干的东西为什么紧贴在一起?

答:首先网上提供的大部分 param 生成函数在无参情况下仍然会生成一行空的 @param,因此我对param 函数的代码进行修改,使得在无参情况下不生成 @param,但是这就要求 $param$ 要和别人处在同一行中,不然没法处理退格。

(4)为什么 return 参数不使用 methodReturnType(), 而要自己实现?

答:methodReturnType() 在无返回值的情况下会返回 void,这并没有什么意义,因此我对 methodReturnType() 返回值进行了处理,仅在有返回值时才生成。

(5)为什么 $return$ 不是单独一行?

答:因为当 methodReturnType() 返回 null 时,无法处理退格问题,原因同第三点。

作者:Jitwxs

链接:https://jitwxs.cn/4135e0a9.html

往期推荐

在 Spring Boot 中,如何干掉 if else

大文件上传服务器、支持超大文件HTTP断点续传实践总结

支付宝架构真牛逼

Navicat!这个IDEA的兄弟,真香!

字节二面:GET 请求能上传图片吗?我蒙了。。

在部队当程序员是什么体验?

Mybatis-Plus 官方神器发布!

Spring Boot 2.6 正式发布:循环依赖默认禁止。。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。