原文: 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)}
@Before
public void setUp() {
${cursor}
}
b)Junit 的之后方法
${:import (org.junit.After)}
@After
public void tearDown() {
${cursor}
}
c)Junit 的之前类
${:import (org.junit.BeforeClass)}
@BeforeClass
public static void oneTimeSetUp() {
// one-time initialization code
${cursor}
}
d)Junit 的之后类
${:import (org.junit.AfterClass)}
@AfterClass
public 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
祝您学习愉快!