序文
テンプレートコメントを設定するとき、特にメソッドテンプレートコメントを設定するとき(パラメータや戻り値が空であるなど)、多くの人がさまざまな問題に遭遇したと思います。私もインターネットでたくさんの検索を行ってきましたが、結局は何も戻らないことをご存知でしょう。この記事でこの問題を解決できます。クラスのテンプレート注釈は非常に単純なので、オンライン検索の方法でもクラスの生成の問題を解決できます。テンプレートコメントの状況については、この記事では紹介せず、メソッドテンプレートコメントの生成方法と、Groovy
使用するスクリプトの具体的な意味だけを紹介します。これによりGroovy
、最後に、独自のニーズに合わせて独自のスクリプトを作成できます。Gif
具体的な使用方法を示す動画もありますが、言うまでもなく紹介を始めます。
テンプレートを作成する
最初File -> Settings -> Editor -> Live Templates
にクリックすると、次のインターフェイスが表示されます。
次に、クリック+
して選択する必要がありますTemplate Group...
:
次に、任意の名前を選択してクリックしますOK
。
次に、下の図に従って、最初に作成したものを選択してGroup
から、クリック+
して選択しますLive Template
。
次に、ポップアップインターフェイスの図にマークされている情報を入力します。
写真1
の位置は伝統に従って使用されており(ほとんどの人がこのように設定していたと思います)*
、対応するものTemplate text
は次のとおりです。
**
* description
$params$
*
$return$
* @author zjw
* @createTime $date$ $time$
*/
ここで特に注意する必要があります。Template text
コンテンツの先頭を先頭にすることはできません/**
。そうしないと、パラメータと戻り値が空になる場合があります。以前にこのように設定したと思われるかもしれませんが、機能しませんが、読み続けてください。続けてください。以前に遭遇したことがTemplate text
ありますが、後でスクリプトのコードと一致させるためにここにいるので、同じように見えない可能性があります。
次に、下の図の手順に従ってセットアップApplication Contexts
する必要がありますJava
。を選択し、終了後にクリックすることを忘れないでくださいApply
。
配置脚本
上記の手順を完了したら、図に次の工程に係る構成に対応するスクリプトを開始することができ、かつ2
、及び3
それぞれに次の二つの入力Groovy
(後述するようにスクリプトを意味する)スクリプト、4
および5
ドロップダウンボックスシステムのデフォルトを選択します:
groovyScript("def result='';def flag=false;def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if (!params[i].equals('')) {flag=true;result+='* @param ' + params[i] + ' ' + params[i] + ((i < params.size() - 1) ? '\\n\\t ':'')} else {result+=' *'}}; return flag ? ' *\\n\t ' + result : result", methodParameters())
groovyScript("def params=\"${_1}\";def index=params.lastIndexOf('.', params.indexOf('<'));if(index!=-1){params=params.substring(index+1);};index=params.indexOf('.');if(index!=-1&¶ms.indexOf('<')==-1){params=params.substring(index+1);};return ' * @return ' + params.replaceAll('java.lang.', '').replaceAll(',',', ');", methodReturnType())
少し設定を完了したら、をクリックOK
しApply
てテンプレートを使用します。
注釈使用テスト
上記のGroovy
スクリプトの意味を説明する前に、上記の構成の注釈テンプレートの使用方法を見てみましょう。
注釈を追加する必要があるメソッドを入力し、/*
を押しTab
て生成するだけです。これは*
、上記のAbbreviation
構成に対応します。*
使用される*
上記構成置き換えることTemplate text
、およびTemplate text
前面の添加を/
、我々は正常に対応するコメントテンプレートに追加Gif
操作の動きは次の通りであります:
スクリプトの意味の概要
$return$
例としてsetスクリプトを取り上げます。説明の便宜上、スクリプトはフォーマットされています。コードとその意味は次のとおりでGroovy
ありJava
、構文は非常に似ているため、理解するのは難しくありません。
groovyScript("
// 将 methodReturnType() 的返回值转化为字符串赋给 params
// 默认的返回值格式为 pojo.User / java.lang.int 等形式
def params = \"${
_1}\";
// 如果返回值有集合时,原始形式为 java.util.List<java.lang.Integer> 这种形式
// 这里获取 '<' 前的 '.' 下标
def index = params.lastIndexOf('.', params.indexOf('<'));
if (index != -1) {
// 执行到这里说明返回值有泛型,为了看着更舒服
// 这里的作用是把 java.util.List<java.lang.Integer> 变为 List<java.lang.Integer>
params = params.substring(index + 1);
};
// 这里继续获取 '.' 的下标
index = params.indexOf('.');
// 如果 '.' 存在,且不存在 '<' 说明返回值没有泛型
if (index != -1 && params.indexOf('<') == -1) {
// 把返回值为 pojo.User 这种变为 User
params = params.substring(index + 1);
};
// 当返回值为基本类型时,都会有 'java.lang.' 前缀
// 例如 java.lang.int ,这里去掉了 java.lang.
// 此外将返回结果中的 ','替换为', '是为了处理 有多个泛型参数的情况
// 例如原始返回值可能为 java.util.Map<java.lang.Integer,java.lang.String>
// 这里为了让泛型之间的 ',' 变成 ', ' 更加美观
// 需要注意的是,我没有处理 java.util.List<pojo.User> 这种情况
// 经过这些代码只会变为 List<pojo.User>, 这个就留给大家自己做了
return ' * @return ' + params.replaceAll('java.lang.', '').replaceAll(',', ', ');
",
methodReturnType()
)
注意
ここreturn
では、処理されたスクリプトコードのすべての意味のみを示します。コードも少し醜いので、独自のGrovvy
スクリプトを作成して共有できることを願っています。私のparam
スクリプトは醜いので、ここでは行いません。ご不明な点がございましたら、メッセージを残すこともできます。
総括する
この記事では、IDEA
生成されたカスタムメソッドテンプレートコメントを使用するときに発生する可能性のある問題のいくつかについて説明します。もちろん、バージョンの理由や操作上の理由により、問題が発生する可能性もあります。メッセージを残して、一緒に話し合うこともできます。