创建 Eclipse 模板以加快 Java 编程

创建 Eclipse 模板以加快 Java 编程

原文: https://howtodoinjava.com/eclipse/create-eclipse-templates-for-faster-java-coding/

我们大多数使用 Eclipse IDE 编写代码的人,都必须使用mainsysout之类的快捷方式,然后点击CTRL+SPACE,它将快捷方式转换为public static void main(String[] args){…}System.out.println()。 这是一项非常有用的功能,每当我为项目或教程编写代码时,我就一直使用它。

好消息是,您也可以在此列表中添加自己的模板,并利用此功能。 例如,解析作为参数传递的 XML 字符串是非常普遍的要求。 解析此类 XML 字符串的代码始终几乎相同。 我们可以为其创建模板,然后在需要时使用其快捷方式。

如何创建新的 Eclipse 模板

要创建 XML 字符串解析的快捷方式,请按照以下步骤操作:

1)通过转到“Windows -> 首选项”打开“首选项”对话框

2)在左侧导航树上,转到“Java -> 编辑器 -> 模板”

3)预定义模板

Eclipse Predefined Templates

Eclipse 预定义模板

4)按下“New…”按钮添加新模板。

5)填写以下模板信息并保存

Create New Template

建立新模板

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

Use template Shortcut

使用模板快捷方式

7)按下Enter,它将生成下面的代码。 请享用 !!

Code inserted in place of shortcut

代替快捷方式的插入代码

您会看到它很有用。 现在,让我们记下一些可以直接使用的代码模板。

有用的 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

祝您学习愉快!