【问题标题】:How to add "import" statements from templates in IntelliJ?如何从 IntelliJ 的模板中添加“导入”语句?
【发布时间】:2016-06-29 08:52:31
【问题描述】:

我在 IntelliJ 中定义了以下实时模板:

private static final Logger log = LoggerFactory.getLogger($CLASS_NAME$.class);

我使用它将记录器变量插入到一个类中。

是否可以定义使模板也添加

import org.slf4j.Logger;
import org.slf4j.LoggerFactory; 

如果这些定义仍然不存在,到文件中?

【问题讨论】:

  • 实时模板在一处插入一些代码。我认为您应该使用文件模板 - 始终在每个文件中包含导入和静态声明(您可以过滤掉名称中带有 Test 的文件)。或者,您可以随时在每个文件中添加此导入,并让optimize imports 任务在不需要时将其删除。

标签: java intellij-idea code-snippets


【解决方案1】:

在 Live 模板中完全定义它:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger($CLASS_NAME$.class);

并且 IntelliJ 应该自动将表达式重新格式化为导入。 (假设您已经下载了 lib JAR 并使用 IntelliJ 进行了配置)。

编辑:正如评论所说:Shorten FQ Names 复选框应该被选中(默认情况下)

使用 IntelliJ IDEA 15.0.4 测试

【讨论】:

  • Shorten FQ names 复选框应该被启用,否则它将不起作用。
【解决方案2】:

现在可以使用静态导入添加实时模板

您必须在选项中检查静态导入

@org.junit.Test
public void should$EXPR$when$CONDITION$() {
    org.junit.Assert.assertThat(null, org.hamcrest.CoreMatchers.is(org.hamcrest.CoreMatchers.nullValue())); 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2020-02-11
    相关资源
    最近更新 更多