原文地址

http://technicalsearch.iteye.com/blog/2150040

java editor template Eclipse中的快速Java代码模板使用

相信大家都用过Eclipse的缩写代码提示功能,如syso能补全为System.out.println();main能补全为完整的main方法,非常的方便。同时,我们也能自己编辑模板,提高自己的代码写作速度。

简介: Eclipse 提供了通过定义和使用代码模板来提高工作效率与代码可预测性的能力。本文介绍的这个技巧向您展示了如何编辑现有的代码模板以及如何定义新的代码模板。它还包括了几个内置变量的例子,以便您可以看到在编辑器中这些内置变量被解析成什么内容。

问题
无论您的项目或团队的规模有多大,在编辑代码库时,都会遇到如下的两个问题:
缺乏一致性— 当团队中的很多人编辑文件时,难免会有编码上的些许差异,但这些差异会使代码变得难于读懂和维护。这种情况下,很难搜索到代码差异在何处发生。即便代码是您一个人写的,如果您忘记了前面代码是如何编写的,那么差异也很有可能发生。工作效率不高— 减少按键次数可以节省很多时间,因为编辑代码的主要工作还是打字。键入或是复制、粘贴大段的代码以使其适于当前的上下文会花费很多时间。
代码模板
尽管代码模板是提高工作效率的一个理想途径,但需要确保不能用模板来替代真正的重用,即编写方法或函数以便将它们用于许多位置。如果您有一大段代码,那么最好在使用代码模板前先考虑采用带有变量的各种方法。

在使用模板前,一个常用的、手动提高代码一致性和工作效率的方法就是复制和粘贴。通过在现有的代码库 — 或是 Internet — 上进行搜索并复制最接近您想要实现的功能的代码。然后再根据您的具体应用程序的需要对其进行部分修改。

解决方案:使用模板
Eclipse 中的模板是预先定义的代码清单,其中会包含一些在使用时不会改变的代码。例如,Java™ 代码中的for 循环都是用相同的方法构建的,无论该循环用在何处,除非是循环的 inside 条件或变量有所变化。一个模板总是包含一些不变的部分,并为需要改变的部分使用变量。
Eclipse 中的模板是预先定义的代码清单,其中会包含一些在使用时不会改变的代码。例如,Java™ 代码中的for 循环都是用相同的方法构建的,无论该循环用在何处,除非是循环的 inside 条件或变量有所变化。一个模板总是包含一些不变的部分,并为需要改变的部分使用变量。
使用 Eclipse 中的模板是解决一致性和工作效率问题的一种很好的方法。有了模板,您只需编写一次代码就可以放心地将它应用于整个应用程序了。您甚至可以不用再去想它,这也是使用模板的一个优势。
本文将介绍如何:
调用模板编辑模板创建模板利用模板中的变量导出模板导入模板

调用模板
调用模板十分容易。当在编辑器中进行输入时,开始键入模板的名称并使用 Ctrl+Space 来调用代码完成功能。名称与所键入内容相匹配的模板就会出现在列表中(参见图 1)。

图 1. 从列表中选择模板


 
如果再次按 Ctrl+Space,Eclipse 就会循环遍历模板的类型。
要插入一个模板,使用箭头键从列表中选择此模板并按 Enter。也可以使用鼠标双击出现在列表内的模板的名称。
模板插入后,您可以键入各变量的值。使用 Tab 键来从一个变量转到另一个变量。

编辑模板
要编辑一个模板,需要通过选择 Window > Preferences 打开 Eclipse Preferences。转到 Java > Editor > Templates 以查看现有的模板。要编辑一个现有的模板,单击列表中的这个模板并单击 Edit。Edit Template窗口会随即出现(参见图 2)。

图 2. 编辑模板


 
表 1 列出了 Edit Template 窗口中的各字段。
Name 模板的名称
Context 模板的上下文。Eclipse 将模板的选择限定于对该上下文有效的那些模板。比如,如果编辑的是 XML 文件,那么绝对不会出现 Java 语句。
Automatically insert 如果选中,Eclipse 在模板的全部名称输入完毕且调用了模板插入后(比如按 Ctrl+Space)自动插入一个模板。
Description 描述模板并会出现在下拉列表中。描述有助于识别该模板,因为模板名称并不需要惟一。
Pattern 作为模板插入的实际代码,包括需要 Eclipse 解析的全部变量。
可以编辑模板的值,并且在完成编辑后,单击 OK。要在编辑模板的同时插入一个内置的变量,可以单击 Insert Variable。查阅 “Taking advantage of variables in templates” 更多地了解可用的变量。

创建一个模板
要创建一个模板,单击 New。根据 “编辑一个模板” 部分中的介绍编辑值并且在完成后单击 OK。新模板现在出现在列表内。在完成后,单击 OK 以编辑文件。
利用模板内的变量
使用模板的一个最大的挑战是要知道当被插入到代码内时这些内置变量被解析成什么。这些变量可自动插入诸如当前类型名称、光标位置或所选值这样的内容。变量会使模板更为动态并会减少在模板插入后需要对模板进行的手动更改的工作量。
以清单 1 内的模板代码为例。

清单 1. 面向登录声明的模板
${imp:import(java.util.logging.Logger)} private static Logger logger = Logger.getLogger(${enclosing_type}.class.getName());
在被插入到 Automobile 类后,代码将如清单 2 所示。

清单 2. 在插入登录声明后的 Automobile 类
private static Logger logger = Logger.getLogger(Automobile.class.getName());
可以看到,类的名称已经为您解析好了。这无疑好过复制粘贴方式,因为在后一种方式中,您很可能会忘记更新类的名称。由于在声明中即便有不正确的类名,也不会抛出编译错误,因此您很可能发现不了这个错误,直到您查看日志才会奇怪为什么这些声明没有在它们该在的位置。
此 Logger 的导入声明是自动地为 Logger 添加在这个类的顶端的。
表 2 列出并描述了 Eclipse 所带的针对这些 Java 模板的内置变量。

表 2. Eclipse 针对 Java 模板的内置变量
cursor 将编辑器的光标放在这个位置。 N/A
date 插入当前日期。 Oct 20, 2009
dollar 插入货币的文字符号。 $
elemType 尝试猜测具有给定 ID 的这个元素的类型。 MyType
enclosing_method 插入模板被插入其中的那个方法的名称。 method()
enclosing_method_arguments 为包围方法插入参数。 arg1, arg2
enclosing_package 插入当前类的包名。 com.example.ui
enclosing_project 插入包含所编辑的这个类的项目的名称。 myProject
enclosing_type 插入正在编辑的类型(类)的名称。 MyType
exception_variable_name 插入一个异常变量名称,进行最佳猜测。 e, ioe
file 文件的简称。 MyType.java
import 如果尚未导入,那么针对给定类型插入一个导入声明。 import com.example.ui.MyOtherType
importStatic 与 import 相同,只不过是静态导入。 import static com.example.ui.MyOtherType.*
line_selection 将选中的行插入到这里。这对用模板包装行是很有用的。 以选中行作为主体的 do、while 循环
primary_type_name 没有扩展名的文件简称。 MyType
time 插入当前的时间。 9:09:35 a.m.
todo 注释中的 TODO 标记。 TODO
user 当前用户的名字。 ngood
var 解析为本地变量,如果不只一个,就提供一个列表。 myvar
word_selection 插入当前选中的单词。 N/A
year 将现在的年份插入到代码中。 2009
变量的另一个很棒的特性就是您可以自己创建一个。它们并不会自动地解析成任何值。不过,在模板插入后,您即可以将值输入到模板内。在键入到变量中时,所键入的值就会被插入到该变量出现在代码中的所有位置。请看清单 3 中的模板。

清单 3. 创建您自己的变量
public void test${my_variable}() { String expected = "value"; ${my_object}.set${my_variable}(expected); assertEquals("${message}", expected, ${my_object}.get${my_variable}); }
在插入了模板后,它应该类似图 3。

图 3. 自动插入值


 
您只需要键入第一个值,其余的值会自动替换。完成后,按 Tab 移到下一个变量。
导出模板
为了与他人共享模板,可以将这些模板导出到一个文件。这个文件是一个 XML 文件,内含模板信息并可被导入到 Eclipse 的其他实例。
要导出一个模板,选中此模板并单击 Export。Eclipse 会提示您提供保存此文件的位置。完成导出模板后,单击OK 关闭这个Preferences 窗口。
导入模板
还可以从包含有导出模板的这个文件中导入模板。要导入一个模板,单击Import。Eclipse 会提示您给出要从中导入的文件。
在导入想要的模板后,单击 OK。现在您就可将新的模板导入到编辑器中了。
结束语
Eclipse 内的代码模板是一种提高工作效率和应用程序一致性的有效方式。您可以构建自己使用的代码模板以便能够在编辑代码的同时轻松地将常用部分插入到您的代码内。您还可以在代码内定义变量以便自动地将类型的名称、方法甚至是选中的代码插入到您的模板内。有了自己喜欢的模板后,就可以通过将模板导出和导入到 Eclipse 来共享这些模板。

Eclipse 模板使用相关推荐

  1. Android Studio新建类头部注释和添加函数注释模板及快捷键

    一,Android Studio新建类头部注释 是不是有时候看到这个很心烦 其实Studio中有设置修改这些注释模板的信息的功能 其实很简单,只需要两步: 1.打开Setting设置面板,找到File ...

  2. android studio 新建函数注释模板

     今天,简单讲讲如何使用  android studio 新建函数注释模板. 这个其实也很简单, Android Studio默认函数注释为 /*** */ 下面方法将要改为如下格式 /** ...

  3. idea 导入template_如何将静态导入添加到IntelliJ IDEA实时模板

    我需要将以下Eclipse模板移植到IntelliJ IDEA /** * See method name. */ @${testType:newType(org.junit.Test)} publi ...

  4. Eclipse如何快速选中字符并添加双引号

    Eclipse如何快速选中字符并添加双引号 自定义Eclipse的模板快速选中字符并添加引号 构建Eclipse模板 总结 自定义Eclipse的模板快速选中字符并添加引号 在使用Eclipse的过程 ...

  5. Eclipse的超级详细的安装和配置(在windows11x64下

    1.获取Eclipse安装包 链接:https://pan.baidu.com/s/19Xg6PbgIH2kr1Zug5G1Ztg 提取码:zhm6 2.解压到自己想要的目录(目录不能有中文,要不然会 ...

  6. fold函数_Java中使用Map and Fold进行函数式编程

    fold函数 在函数式编程中,Map和Fold是两个非常有用的运算符,它们属于每种函数式语言. 如果Map和Fold运算符是如此强大且必不可少,那么您如何解释说即使Java编程语言缺少这两个运算符,我 ...

  7. Java中使用Map and Fold进行功能性编程

    在函数式编程中,Map和Fold是两个非常有用的运算符,它们属于每种函数式语言. 如果Map和Fold运算符是如此强大且必不可少,那么您如何解释说即使Java编程语言缺少这两个运算符,我们也可以使用J ...

  8. HowToDoInJava 其它教程 2 · 翻译完毕

    原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 JMS 教程 JMS 教 ...

  9. Jasper实现报表(Java)

    目录 1.TIBCO Jaspersoft Studio安装 2.Jaspersoft Studio使用 2.1 创建一个JasperReports Project 2.2 创建报表模板 2.3 设计 ...

  10. IDEA 操作与设置笔记

    1. 设置快捷键 1.1 在IDEA 中设置eclipse 快捷键模板 IDEA 提供了几种常用的快捷键模板,根据个人的习惯可以设置.如果习惯了eclipse 快捷键, 可以在IDEA中设置eclip ...

最新文章

  1. mysql备份psd文件没有数据_两套mysql备份脚本
  2. 关于asp.net Session丢失问题的总结
  3. 老版本select2设置初始值
  4. 地...地...地震了
  5. android手机没电怎么恢复电量,手机电池不耐用怎么恢复_华为手机电池不耐用怎么恢复_攻略...
  6. linux adc测试程序,基于Qt4.7的ADC测试程序
  7. 前端学习(3247):react的生命周期getSnapBeforeUpdate举例
  8. deployment:声明式的升级应用
  9. Win10家庭版安装docker(WSL与WSL2两种安装方式)
  10. 阿里云服务器+ubantu+nodejs 服务器基本配置流程
  11. Atitit sumdoc index 2019 v6 t56 .docx Atitit sumdoc index s99 目录 1. Zip ver 1 1.1. C:\Users\Adminis
  12. python dataframe 取每行的最大值_在pandas DataFrame中查找列的值最大的行
  13. 服务器部署Nodejs api 接口
  14. Android多媒体开发框架
  15. postman “header“:{“retCode“:“999999“
  16. matlab含未知数矩阵方程组,solve函数求解含有未知数的矩阵方程问题
  17. Oracle WebLogic Server 12c: Node Manager配置与使用
  18. 藏书阁(非技术流书籍)
  19. MacBook Pro 触控板目前没有触感反馈怎么办?
  20. 开源项目之Android繁体中文输入法

热门文章

  1. VS使用SDL2时LNK2019无法解析的外部符号_main
  2. php四则运算器,php实现简单四则运算器
  3. java中equals重写_Java 中equals和toString()方法重写
  4. c++ 11 中for循环新增的用法(基于范围的for循环)
  5. php万能表单制作教程,万能表单系统
  6. 智慧云linux安装命令,智能的shell命令行fish 3.0.0发布下载,附安装方法
  7. 计算机网络知识汇总(超详细整理)
  8. unix服务器修改系统时间,Linux或Unix修改系统时间的方法
  9. android viewflipper 动画,Android自定义ViewFlipper实现滚动效果
  10. android widget ViewFlipper