原文: https://howtodoinjava.com/eclipse/create-eclipse-templates-for-faster-java-coding/
我们大多数使用 Eclipse IDE 编写代码的人,都必须使用main或sysout之类的快捷方式,然后点击CTRL+SPACE,它将快捷方式转换为public static void main(String[] args){…}和System.out.println()。 这是一项非常有用的功能,每当我为项目或教程编写代码时,我就一直使用它。
好消息是,您也可以在此列表中添加自己的模板,并利用此功能。 例如,解析作为参数传递的 XML 字符串是非常普遍的要求。 解析此类 XML 字符串的代码始终几乎相同。 我们可以为其创建模板,然后在需要时使用其快捷方式。
如何创建新的 Eclipse 模板
要创建 XML 字符串解析的快捷方式,请按照以下步骤操作:
1)通过转到“Windows -> 首选项”打开“首选项”对话框
2)在左侧导航树上,转到“Java -> 编辑器 -> 模板”
3)预定义模板

Eclipse 预定义模板
4)按下“New…”按钮添加新模板。
5)填写以下模板信息并保存

建立新模板
6)使用CTRL + SPACE在任何 Java 源文件中使用模板

使用模板快捷方式
7)按下Enter,它将生成下面的代码。 请享用 !!

代替快捷方式的插入代码
您会看到它很有用。 现在,让我们记下一些可以直接使用的代码模板。
有用的 Eclipse 模板示例
1)IO 模板文件
以下模板对于读取或写入文件很有用。 他们使用 Java7 功能(如try-with-resources)自动关闭文件。 他们还使用 NIO2.0 中的方法来获取缓冲的读取器并读取文件。
a)从文件中读取文本
${:import(java.nio.file.Files,java.nio.file.Paths,java.nio.charset.Charset,java.io.IOException,java.io.BufferedReader)}try (BufferedReader in = Files.newBufferedReader(Paths.get(${fileName:var(String)}),Charset.forName("UTF-8"))) {String line = null;while ((line = in.readLine()) != null) {${cursor}}} catch (IOException e) {// ${todo}: handle exception}
b)从列表中的文件中读取所有行
${:import(java.nio.file.Files,java.nio.file.Paths,java.nio.charset.Charset,java.util.List,java.util.ArrayList)}Lis<String> lines = new ArrayList<>();try{lines = Files.readAllLines(Paths.get(${fileName:var(String)}),Charset.forName("UTF-8"));}catch (IOException e) {// ${todo}: handle exception}${cursor}
c)写入文件
${:import(java.nio.file.Files,java.nio.file.Paths,java.nio.Charset,java.io.IOException,java.io.BufferedWriter)}try (BufferedWriter out = Files.newBufferedWriter(Paths.get(${fileName:var(String)}),Charset.forName("UTF-8"))) {out.write(${string:var(String)});out.newLine();${cursor}} catch (IOException e) {// ${todo}: handle exception}
2)XML I/O 模板
以下模板用于读取 xml 文件或字符串并返回 DOM。
a)将 XML 文件解析为文档
${:import(org.w3c.dom.Document,javax.xml.parsers.DocumentBuilderFactory,java.io.File,java.io.IOException,javax.xml.parsers.ParserConfigurationException,org.xml.sax.SAXException)}Document doc = null;try {doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(${filename:var(String)}));} catch (SAXException | IOException | ParserConfigurationException e) {// ${todo}: handle exception}${cursor}
b)将 XML 字符串解析为文档
${:import(org.w3c.dom.Document,javax.xml.parsers.DocumentBuilderFactory,org.xml.sax.InputSource,java.io.StringReader,java.io.IOException,javax.xml.parsers.ParserConfigurationException,org.xml.sax.SAXException)}Document doc = null;try {doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(${str:var(String)})));} catch (SAXException | IOException | ParserConfigurationException e) {// ${todo}: handle exception}${cursor}
3)日志模板
以下模板对于创建记录器和记录消息很有用。 我使用的是 SLF4J,但是可以很容易地对其进行调整,以使用任何其他日志记录框架。
a)创建一个新的记录器
${:import(org.slf4j.Logger,org.slf4j.LoggerFactory)}private static final Logger LOGGER = LoggerFactory.getLogger(${enclosing_type}.class);
b)在放置调试日志之前检查调试范围
if(LOGGER.isDebugEnabled())LOGGER.debug(${word_selection}${});${cursor}
c)日志信息级别声明
LOGGER.info(${word_selection}${});${cursor}
d)记录错误
LOGGER.error(${word_selection}${}, ${exception_variable_name});
e)记录错误并引发异常
LOGGER.error(${word_selection}${}, ${exception_variable_name});throw ${exception_variable_name};${cursor}
4)JUNIT 模板
a)Junit 的之前方法
${:import (org.junit.Before)}@Beforepublic void setUp() {${cursor}}
b)Junit 的之后方法
${:import (org.junit.After)}@Afterpublic void tearDown() {${cursor}}
c)Junit 的之前类
${:import (org.junit.BeforeClass)}@BeforeClasspublic static void oneTimeSetUp() {// one-time initialization code${cursor}}
d)Junit 的之后类
${:import (org.junit.AfterClass)}@AfterClasspublic static void oneTimeTearDown() {// one-time cleanup code${cursor}}
请注意,可以为其他文件类型(例如 XML,JSP 等)定义这些模板。在给定的链接中可以找到更多模板:
http://stackoverflow.com/questions/1028858/useful-eclipse-java-code-templates
http://eclipse.dzone.com/news/effective-eclipse-custom-templ
祝您学习愉快!
