아이디어 라이브 템플릿에 대한 고급 지식, 고급
为了解决用一个命令(宏)给方法,类,js方法添加注释,经过几天的研究.终于得到结果了.
实现的效果如下:
给Java中的method添加方法:
/** * * @Method : addMenu * @Description : * @param menu : * @return : cn.yiyizuche.common.base.ResultMsg * @author : Rush.D.Xzj * @CreateDate : 2017-06-12 星期一 18:17:42 * */public ResultMsg addMenu(Menu menu){ ResultMsg result = null;return result; }
给 Java class 添加注释:
/** * * @Project : 壹壹OA * @Package : cn.yiyizuche.common.ou.menu.controller * @Class : MenuController * @Description : * @author : Rush.D.Xzj * @CreateDate : 2017-06-12 星期一 18:15:32 * @version : V1.0.0 * @Copyright : 2017 yizukeji Inc. All rights reserved. * @Reviewed : * @UpateLog : Name Date Reason/Contents * --------------------------------------- * *** **** **** * */public class MenuController { }
给js 的方法添加注释
/** * * @Method : standardShowBatchCheckBox * @Description : * @return : * @author : Rush.D.Xzj * @CreateDate : 2017-06-12 星期一 18:15:21 * */function standardShowBatchCheckBox(jspElement, dataList, max, valueIdFunction, textFunction, selectedFunction) { }
现在把答案公布如下
Abbreviation:
cmj
Template text(注1):
** *$context$ */
Edit variables:
$context$的代码(主要代码)如下:
groovyScript("def methodName = \"${_1}\"; def jsMethodName = \"${_2}\"; def outputMethodName = \"${_3}\"; def outputDesc = \"${_4}\"; def outputParams = \"${_5}\"; def outputAuthor = \"${_6}\"; def outputReturnType = \"${_7}\"; def outputDateTime = \"${_8}\"; def outputPackage = \"${_9}\"; def outputClass = \"${_10}\"; def outputClassOtherInfo = \"${_11}\"; def outputProject = \"${_12}\"; def outputVersion = \"${_13}\"; def outputJsMethodName = \"${_14}\"; def outputJsReturnType = \"${_15}\"; def result = ''; if (methodName != 'null') { result += '\\n'; result += outputMethodName; result += outputDesc; result += outputParams; result += outputReturnType; result += outputAuthor; result += outputDateTime; result += ' *'; return result; } else if (jsMethodName != 'null') { result += '\\n'; result += outputJsMethodName; result += outputDesc; result += outputJsReturnType; result += outputAuthor; result += outputDateTime; result += ' *'; return result; } else { result += '\\n'; result += outputProject; result += outputPackage; result += outputClass; result += outputDesc; result += outputAuthor; result += outputDateTime; result += outputVersion; result += outputClassOtherInfo; result += ' *'; return result; } ", methodName(), jsMethodName(), groovyScript("def methodName = \"${_1}\"; def result = ' * @Method : ' + methodName + '\\n'; return result;", methodName()), groovyScript("def result = ' * @Description : ' + '\\n'; return result;"), groovyScript("if(\"${_1}\".length() == 2) { return ''; } else { def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) { result+=' * @param ' + params[i] + ' : ' + '\\n' }; return result;}", methodParameters()), groovyScript("def author = 'Rush.D.Xzj'; def result = ' * @author : ' + author + '\\n'; return result;"), groovyScript("def returnType = \"${_1}\"; def result = ' * @return : ' + returnType + '\\n'; return result;", methodReturnType()), groovyScript("def date = \"${_1}\"; def time = \"${_2}\"; def result = ' * @CreateDate : ' + date + ' ' + time + '\\n'; return result;", date("yyyy-MM-dd E"), time("HH:mm:ss")), groovyScript("def currentPackage = \"${_1}\"; def result = ' * @Package : ' + currentPackage + '\\n'; return result;", currentPackage()), groovyScript("def className = \"${_1}\"; def result = ' * @Class : ' + className + '\\n'; return result;", className()), groovyScript("def result = ' * @Copyright : 2017 yizukeji Inc. All rights reserved.' + '\\n'; result += ' * @Reviewed : ' + '\\n'; result += ' * @UpateLog : Name Date Reason/Contents' + '\\n'; result += ' * ---------------------------------------' + '\\n'; result += ' * *** **** **** ' + '\\n'; return result;"), groovyScript("def result = ' * @Project : 壹壹OA' + '\\n'; return result;"), groovyScript("def result = ' * @version : V1.0.0' + '\\n'; return result;"), groovyScript("def jsMethodName = \"${_1}\"; def result = ' * @Method : ' + jsMethodName + '\\n'; return result;", jsMethodName()), groovyScript("def result = ' * @return : ' + '\\n'; return result;"))
使用如下:
在xx.java或者 xx.js中输出(注2):
/cmj
后 按 tab键(此键是默认的,可以更改成其他的)
注1 和注2
也可以换成第二种方法(网上大部分的方法):
Template text
* *$context$ */
跟注1比较第一行少了一个*,
因此注2就是变成了:
/*cmj
我感觉用我的方法比第二种方法好.
Edit Variable中代码详解
首先我分解了如下的 10几个函数(是小函数):
// 输出方法名groovyScript("def methodName = \"${_1}\"; def result = ' * @Method : ' + methodName + '\\n'; return result;", methodName()) // 输出描述 groovyScript("def result = ' * @Description : ' + '\\n'; return result;") // 输出参数列表的子函数 groovyScript("if(\"${_1}\".length() == 2) {return ''; } else { def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+=' * @param ' + params[i] + ' : ' + '\\n'}; return result;}", methodParameters()) // 输出 作者的 子函数 这里可以改作者 groovyScript("def author = 'Rush.D.Xzj'; def result = ' * @author : ' + author + '\\n'; return result;") // 输出 返回值的 子函数 groovyScript("def returnType = \"${_1}\"; def result = ' * @return : ' + returnType + '\\n'; return result;", methodReturnType()) // 输出 日期的 字函数, 这个可以更改日期格式 groovyScript("def date = \"${_1}\"; def time = \"${_2}\"; def result = ' * @CreateDate : ' + date + ' ' + time + '\\n'; return result;", date("yyyy-MM-dd E"), time("HH:mm:ss")) // 输出Project groovyScript("def result = ' * @Project : 壹壹OA' + '\\n'; return result;") // 输出package groovyScript("def currentPackage = \"${_1}\"; def result = ' * @Package : ' + currentPackage + '\\n'; return result;", currentPackage()) // 输出class groovyScript("def className = \"${_1}\"; def result = ' * @Class : ' + className + '\\n'; return result;", className()) // 输出copyright/reviewd/updatelog groovyScript("def result = ' * @Copyright : 2017 yizukeji Inc. All rights reserved.' + '\\n'; result += ' * @Reviewed : ' + '\\n'; result += ' * @UpateLog : Name Date Reason/Contents' + '\\n'; result += ' * ---------------------------------------' + '\\n'; result += ' * *** **** **** ' + '\\n'; return result;") // 输出version groovyScript("def result = ' * @version : V1.0.0' + '\\n'; return result;") // 输出jsMethodName groovyScript("def jsMethodName = \"${_1}\"; def result = ' * @Method : ' + jsMethodName + '\\n'; return result;", jsMethodName()) // 输出 js 的return groovyScript("def result = ' * @return : ' + '\\n'; return result;")
然后在主要代码中,需要把上述的10几个函数当做参数供给主要代码使用.
判断是函数,类,js函数主要是通过如下的2个内置变量来实现的:
methodName() jsMethodName()
当methodName()不为空的时候, 生成 方法的 注释
当jsMethodName()不为空的时候, 生成 js方法的注释
否则生成类的注释
所以上述的代码可以简单的做如下的归类了:
获取相关参数:
def methodName = \"${_1}\"; def jsMethodName = \"${_2}\"; def outputMethodName = \"${_3}\"; def outputDesc = \"${_4}\"; def outputParams = \"${_5}\"; def outputAuthor = \"${_6}\"; def outputReturnType = \"${_7}\"; def outputDateTime = \"${_8}\"; def outputPackage = \"${_9}\"; def outputClass = \"${_10}\"; def outputClassOtherInfo = \"${_11}\"; def outputProject = \"${_12}\"; def outputVersion = \"${_13}\"; def outputJsMethodName = \"${_14}\"; def outputJsReturnType = \"${_15}\"; def result = '';
判断是哪一种类型的注释(代码片段2):
if (methodName != 'null') { result += '\\n'; result += outputMethodName; result += outputDesc; result += outputParams; result += outputReturnType; result += outputAuthor; result += outputDateTime; result += ' *';return result; } else if (jsMethodName != 'null') { result += '\\n'; result += outputJsMethodName; result += outputDesc; result += outputJsReturnType; result += outputAuthor; result += outputDateTime; result += ' *';return result; } else { result += '\\n'; result += outputProject; result += outputPackage; result += outputClass; result += outputDesc; result += outputAuthor; result += outputDateTime; result += outputVersion; result += outputClassOtherInfo; result += ' *';return result; }
这下就可以了.就把整个这么难看(groopscript搞的?)代码整理的比较清晰了.
我还有如下的几个疑惑/问题需要解决, 如果有朋友能给我答案那就好了.
问题1. 不知道可以通过什么方法获取js方法中的参数列表
问题2. 代码片段2中如果我改成了:
result += '\\n';if (methodName != 'null') { result += outputMethodName; result += outputDesc; result += outputParams; result += outputReturnType; result += outputAuthor; result += outputDateTime; } else if (jsMethodName != 'null') { result += '\\n'; result += outputJsMethodName; result += outputDesc; result += outputJsReturnType; result += outputAuthor; result += outputDateTime; } else { result += '\\n'; result += outputProject; result += outputPackage; result += outputClass; result += outputDesc; result += outputAuthor; result += outputDateTime; result += outputVersion; result += outputClassOtherInfo; } result += ' *';return result;
会出现如下的错误:
startup failed: Script1.groovy: 1: expecting EOF, found 'result' @ line 1, column 1036. lt += outputClassOtherInfo; } result += ^ 1 error
问题3: 不知道怎么获取Override方法对应的接口方法(父类方法)
关于问题3: 实际上给这种方法加注释是没有意义的,具体可以参考:
但是如果非要加该怎么去判断.
最后可以把 缩写(abbreviation) 改成: *
这样以后只需要输入:
/*
然后按一下 tab 键就出现结果了
哈哈!!!
위 내용은 아이디어 라이브 템플릿에 대한 고급 지식, 고급의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Baidu 고급 검색 사용 방법 Baidu 검색 엔진은 현재 중국에서 가장 일반적으로 사용되는 검색 엔진 중 하나이며, 그 중 하나가 고급 검색입니다. 고급 검색은 사용자가 필요한 정보를 보다 정확하게 검색하고 검색 효율성을 높이는 데 도움이 됩니다. 그렇다면 Baidu 고급 검색을 사용하는 방법은 무엇입니까? 첫 번째 단계는 Baidu 검색 엔진 홈페이지를 여는 것입니다. 먼저 Baidu의 공식 웹사이트인 www.baidu.com을 열어야 합니다. 바이두 검색에 들어가는 입구입니다. 두 번째 단계에서는 고급 검색 버튼을 클릭하세요. 바이두 검색창 오른쪽에

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

구성 단계: 1. IntelliJ IDEA를 열고 프로젝트를 입력합니다. 2. 상단 메뉴에서 "실행"을 클릭합니다. 3. 왼쪽 상단에서 더하기 기호를 선택하고 "Tomcat Server" > "Local"을 선택합니다. "서버" 옵션에서 "구성"을 클릭하고 Tomcat 설치 디렉터리를 선택합니다. 5. "배포" 옵션에서 더하기 기호를 클릭하여 프로젝트를 추가합니다. 6. "실행 전"에 저장합니다.

IDEA(IntelliJIDEA)는 개발자가 다양한 Java 애플리케이션을 빠르고 효율적으로 개발하는 데 도움을 줄 수 있는 강력한 통합 개발 환경입니다. Java 프로젝트 개발에서 Maven을 프로젝트 관리 도구로 사용하면 종속 라이브러리 관리, 프로젝트 빌드 등을 더 잘 관리하는 데 도움이 될 수 있습니다. 이 기사에서는 특정 코드 예제를 제공하면서 IDEA에서 Maven 프로젝트를 생성하는 방법에 대한 기본 단계를 자세히 설명합니다. 1단계: IDEA 열기 및 새 프로젝트 만들기 IntelliJIDEA 열기

이 문서에서는 Xbox Live에 연결하거나 Xbox One에 로그인하려고 할 때 연결 시간 초과 문제를 일으키는 0x87dd0019 Xbox 로그인 오류를 해결하는 방법을 안내합니다. Xbox의 오류 코드 0x87e00019는 무엇입니까? Xbox 본체에 게임을 설치하거나 업데이트할 때 오류 코드 0x87e00019가 발생하면 Xbox 하드 드라이브의 저장 공간이 부족하거나 거의 꽉 찼을 수 있다는 의미입니다. 이 문제를 해결하려면 저장 공간을 확보해야 합니다. 동시에 Xbox 서버 문제로 인해 이 오류가 발생할 수 있으므로 Xbox Live 서비스 상태도 확인해야 합니다. 이 팁을 사용하여 0x87dd0019Xbox 로그인 오류를 수정하는 방법

JavaScript에서 HTTP 상태 코드를 얻는 방법 소개: 프런트 엔드 개발에서 우리는 종종 백엔드 인터페이스와의 상호 작용을 처리해야 하며 HTTP 상태 코드는 매우 중요한 부분입니다. HTTP 상태 코드를 이해하고 얻는 것은 인터페이스에서 반환된 데이터를 더 잘 처리하는 데 도움이 됩니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. HTTP 상태 코드란 무엇입니까? HTTP 상태 코드는 브라우저가 서버에 요청을 시작할 때 서비스가

구성 방법: 1. IntelliJ IDEA를 열고 도구 모음의 드롭다운 메뉴에서 "구성 편집"을 선택합니다. 2. 새 창에 들어가서 "+" 기호를 클릭하고 드롭다운 메뉴로 들어간 다음 "로컬"을 선택합니다. 3. 새 인터페이스에서 Tomcat의 설치 디렉터리를 선택합니다. 디렉터리를 선택한 후 "확인"을 클릭합니다. 4. Tomcat을 시작하도록 브라우저를 구성합니다.

IDEA에서 Tomcat 소스 코드를 보는 단계: 1. Tomcat 소스 코드를 다운로드합니다. 3. Tomcat 소스 코드를 봅니다. 4. Tomcat의 작동 원리를 이해합니다. 7. 도구 및 플러그인 사용 8. 커뮤니티에 참여하고 기여합니다. 자세한 소개: 1. Tomcat 소스 코드 다운로드 Apache Tomcat 공식 웹사이트에서 소스 코드 패키지를 다운로드할 수 있습니다. 일반적으로 이러한 소스 코드 패키지는 ZIP 또는 TAR 형식 등입니다.
