eclipse的template快捷键的用法和设置(2)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Eclipse 的Template 、快捷键的用法和设置(2)

几个自定义Eclipse 模板的示例

最后来谈谈怎么创建模板,试着举几个简单的例子来作说明。

1.简单的Eclipse 模板的创建

直接将需要作为模板的语句填写在模板的Pattern

栏里,如

前面的public final static String

SEQUENCE_T_PRODUCT_HIST = "T_PRODUCT_HIST";

这样的常量的定义。我们可以定义一个strConstant 的模板,将该模板的Pattern 写为:“ public final static String ${cursor};”。其中${3霭0「}的意思是光标所在的位置。

这样,你如果在程序的适当位置输入:strConstant ,然后点击Atl

/ ,那么你将得到如下的结果:

public final static String ( 光标所在位置) ;

在实际的项目中,我们会遇到这样的情况:

if (LOG.isDebugEnabled()) {

LOG.debug(METHOD_NAME, "The user : " user.getName);

我们为了性能的考虑,经常希望在日志被关闭以后,不再执行LOG.debug 方法里面的任何操作,如"The user : " user.getName 这样的语句。所以我们在LOG.debug 方法外面加上LOG.isDebugEnabled() 这样的判断语句。加上了判断语句以后,代码的性能得到了提高,但每一个日志都加上:

if (LOG.isDebugEnabled()) {

却带来了代码重用上的困难。如今使用Eclipse 模板正好解决了这个问题。

我们来创建一个enabledLOG 的模板,它的Pattern 为:

if (LOG.isDebugEnabled()) {

LOG.debug(METHOD_NAME, "${cursor}");

还有一个例子,我们在写自定义标签的时候,经常需要编码的是doEndTag 方法,在这个方法里面,我们要先写日志:

final String METHOD_NAME = "doEndTag";

(METHOD_NAME,

PerformanceLogger.Event.METHOD_ENTRY);

然后将我们的代码用try…catch包括起来,如下:

try {

} catch (Exception e) {

LOG.error(METHOD_NAME, " ", e);

省略号都是我们要写的代码。

最后,我们又需要纪录日志,然后返回,如下:

(METHOD_NAME,

PerformanceLogger.Event.METHOD_EXIT);

return SKIP_BODY;

每一个自定义标签的格式都是如此,因此,我们可以创建个doEndTag 的模板,它的Pattern 为:

public int doEndTag() throws JspException { final String METHOD_NAME = "doEndTag";

(METHOD_NAME,

PerformanceLogger.Event.METHOD_ENTRY);

try { ${cursor} } catch (Exception e) {

LOG.error(METHOD_NAME, "", e);

(METHOD_NAME,

PerformanceLogger.Event.METHOD_EXIT);

return SKIP_BODY;

在实际的编码过程中,我们会遇到很多这样的例子,使用

Eclipse 模板,将会把我们从烦躁而易于出错的拷贝粘贴中解放出来。

}

2.带参数的Eclipse 模板

Eclipse 除了能让我们创建简单的、静态的Eclipse 模板以外,还可以让我们创建动态的模板,这就是带参数的模板。请看

面的例子:

private static final String EMPLOYEE_SQL = "SELECT *

FROM EMPLOYEE";

protected String getEMPLOYEE_SQL () { return EMPLOYEE_SQL;

private static final String DEPART_SQL = "SELECT *

FROM DEPARTMENT";

protected String getDEPART_SQL () { return DEPART_SQL;

}

这是我在实际项目中遇到过的代码,这两个相似的代码,除了常量的值不同以外,还有常量名不同,get 方法不同,但

get方法都是“ ge常量名”的组合。对于这样的模板,我们就

需要引入带参数的Eclipse 模板。具体方法如下:我们创建一个名为sqlConstant 的模板,它的Pattern 如下:

private static final String ${name} = "";

protected String get${name}() { return ${name};

其中的${name} 就是我们的模板参数,当我们在程序的适当位置输入sqlConstant ,然后点击Alt / 的时候,出现如下的效果:这种参数的好处是,我们有三个地方为name ,当我们在一个地方修改name 为EMPLOYEE_SQL 的时候,其他的两个地方的name 同时改为EMPLOYEE_SQL 。

我们看,这样的带参数的模板是不是很好用。

我们再来看一个例子:假设我们有这样的代码,

protected static IEmployeeBSV getEmployeeBSV()

IBusinessServiceManager bsvmgr =

GenericContainer.getInstance().getBusinessServiceMana

ger();

return (IEmployeeBSV)

bsvmgr.getBusinessService(IEmployeeBSV.class);

相关文档
最新文档