eclipse的template快捷键的用法和设置2.docx
- 文档编号:919223
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:6
- 大小:28.91KB
eclipse的template快捷键的用法和设置2.docx
《eclipse的template快捷键的用法和设置2.docx》由会员分享,可在线阅读,更多相关《eclipse的template快捷键的用法和设置2.docx(6页珍藏版)》请在冰点文库上搜索。
eclipse的template快捷键的用法和设置2
Eclipse的Template、快捷键的用法和设置
(2)
几个自定义Eclipse模板的示例
最后来谈谈怎么创建模板,试着举几个简单的例子来作说明。
1.简单的Eclipse模板的创建
栏里,如
直接将需要作为模板的语句填写在模板的Pattern
前面的publicfinalstaticString
SEQUENCE_T_PRODUCT_HIST="T_PRODUCT_HIST";
这样的常量的定义。
我们可以定义一个strConstant的模板,将该模板的Pattern写为:
“publicfinalstaticString${cursor};”。
其中${3霭0「}的意思是光标所在的位置。
这样,你如果在程序的适当位置输入:
strConstant,然后点击Atl/,那么你将得到如下的结果:
publicfinalstaticString(光标所在位置);
在实际的项目中,我们会遇到这样的情况:
if(LOG.isDebugEnabled()){
LOG.debug(METHOD_NAME,"Theuser:
"user.getName);
我们为了性能的考虑,经常希望在日志被关闭以后,不再执行LOG.debug方法里面的任何操作,如"Theuser:
"user.getName这样的语句。
所以我们在LOG.debug方法外面加上LOG.isDebugEnabled()这样的判断语句。
加上了判断语句以后,代码的性能得到了提高,但每一个日志都加上:
if(LOG.isDebugEnabled()){
却带来了代码重用上的困难。
如今使用Eclipse模板正好解决了这个问题。
我们来创建一个enabledLOG的模板,它的Pattern为:
if(LOG.isDebugEnabled()){
LOG.debug(METHOD_NAME,"${cursor}");
还有一个例子,我们在写自定义标签的时候,经常需要编码的是doEndTag方法,在这个方法里面,我们要先写日志:
finalStringMETHOD_NAME="doEndTag";
PLOG.info(METHOD_NAME,
PerformanceLogger.Event.METHOD_ENTRY);
然后将我们的代码用try…catch包括起来,如下:
try{
}catch(Exceptione){
省略号都是我们要写的代码。
最后,我们又需要纪录日志,然后返回,如下:
PLOG.info(METHOD_NAME,
PerformanceLogger.Event.METHOD_EXIT);
returnSKIP_BODY;
每一个自定义标签的格式都是如此,因此,我们可以创建个doEndTag的模板,它的Pattern为:
publicintdoEndTag()throwsJspException{finalStringMETHOD_NAME="doEndTag";
PLOG.info(METHOD_NAME,
PerformanceLogger.Event.METHOD_ENTRY);
try{${cursor}}catch(Exceptione){
LOG.error(METHOD_NAME,"",e);
PLOG.info(METHOD_NAME,
PerformanceLogger.Event.METHOD_EXIT);
returnSKIP_BODY;
在实际的编码过程中,我们会遇到很多这样的例子,使用
Eclipse模板,将会把我们从烦躁而易于出错的拷贝粘贴中解放出来。
2.带参数的Eclipse模板
Eclipse除了能让我们创建简单的、静态的Eclipse模板以外,还可以让我们创建动态的模板,这就是带参数的模板。
请看
面的例子:
privatestaticfinalStringEMPLOYEE_SQL="SELECT*
FROMEMPLOYEE";
protectedStringgetEMPLOYEE_SQL(){returnEMPLOYEE_SQL;
privatestaticfinalStringDEPART_SQL="SELECT*
FROMDEPARTMENT";
protectedStringgetDEPART_SQL(){returnDEPART_SQL;
这是我在实际项目中遇到过的代码,这两个相似的代码,除了常量的值不同以外,还有常量名不同,get方法不同,但
get方法都是“ge常量名”的组合。
对于这样的模板,我们就
需要引入带参数的Eclipse模板。
具体方法如下:
我们创建一个名为sqlConstant的模板,它的Pattern如下:
privatestaticfinalString${name}="";
protectedStringget${name}(){return${name};
其中的${name}就是我们的模板参数,当我们在程序的适当位置输入sqlConstant,然后点击Alt/的时候,出现如下的效果:
这种参数的好处是,我们有三个地方为name,当我们在一个地方修改name为EMPLOYEE_SQL的时候,其他的两个地方的name同时改为EMPLOYEE_SQL。
我们看,这样的带参数的模板是不是很好用。
我们再来看一个例子:
假设我们有这样的代码,
protectedstaticIEmployeeBSVgetEmployeeBSV()
IBusinessServiceManagerbsvmgr=
GenericContainer.getInstance().getBusinessServiceMana
ger();
return(IEmployeeBSV)bsvmgr.getBusinessService(IEmployeeBSV.class);
protectedstaticIDepartmentBSVgetDepartmentBSV()
IBusinessServiceManagerbsvmgr=
GenericContainer.getInstance().getBusinessServiceManager();
return(IDepartmentBSV)bsvmgr.getBusinessService(IDepartment.class);
我们就可以创建一个名为bsv的模板,其Pattern如下:
protectedstaticI${enclosing_method}get${enclosing_method}()
IBusinessServiceManagerbsvmgr=
GenericContainer.getInstance().getBusinessServiceManager();
return(I${enclosing_method})bsvmgr.getBusinessService(I${enclosing_method}.class);
从上面的例子可以看出,给Eclipse模板带上参数以后,对
Eclipse模板的使用就更加的灵活了。
这样,我们就可以更加灵活的创建Eclipse模板,更加灵活的使用Eclipse模板了。
3.Eclipse模板的几个特殊参数我们可以引用${enclosing_type}参数来代表使用模板的代码所在的类的类名。
假如我们有如下的代码:
publicclassICRMValidationFormTagprivatefinalstaticLogger.ModuleMOD=new
Logger.Module(ModuleId.MOD_TAG);
privatefinalstaticLoggerLOG=
Logger.getLogger(ICRMValidationFormTag.class,MOD);
privatefinalstaticPerformanceLoggerPLOG=
PerformanceLogger.getLogger(ICRMValidationFormTag.class);
publicclassEmployeeprivatefinalstaticLogger.ModuleMOD=new
Logger.Module(ModuleId.MOD_TAG);
privatefinalstaticLoggerLOG=
Logger.getLogger(Employee.class,MOD);
privatefinalstaticPerformanceLoggerPLOG=
PerformanceLogger.getLogger(Employee.class);
模板,Pattern为:
privatefinalstaticLogger.ModuleMOD=new
Logger.Module(ModuleId.MOD_TAG);
privatefinalstaticLoggerLOG=
Logger.getLogger(${enclosing_type}.class,MOD);
privatefinalstaticPerformanceLoggerPLOG=
PerformanceLogger.getLogger(${enclosing_type}.class);
这样,如果我们在ICRMValidationFormTag类里引用myLog
模板,如下:
publicclassICRMValidationFormTagmyLog
则模板中凡是${enclosing_type}的地方,都将被
ICRMValidationFormTag代替。
如果我们在Employee类中引用该模板,如下:
publicclassEmployeemyLog
则模板中凡是${enclosing_type}的地方,都将被Employee
代替。
同理,我们可以使用${enclosing_method}参数来代替使用模
板的代码所在方法的方法名,如,如果我们想用模板来代替每一个方法里形如finalStringMETHOD_NAME="getEmployee";的语句,我们可以使用这样的模板:
模板名为methodName,Pattern为:
finalStringMETHOD_NAME="${enclosing_method}";
这样,如果你在getEmployee方法里使用该模板,那么结果为:
finalStringMETHOD_NAME="getEmployee";
如果你在saveEmployee方法里使用该模板,那么结果为:
finalStringMETHOD_NAME="saveEmployee";
其他的几个常用的特殊参数有:
enclosing_method_arguments—返回该参数所在方法的参数类型;encloging_package—返回该参数所在类的包名;
enclosing_project—返回该参数所在的项目名;
enclosing_type—返回该参数所在类的类名等等。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- eclipse template 快捷键 用法 设置
![提示](https://static.bingdoc.com/images/bang_tan.gif)