55

这是我要移植的 Eclipse 模板:

${:import(org.apache.log4j.Logger)}
private static final Logger LOG = Logger.getLogger(${enclosing_type}.class);

我在 IDEA 中的当前版本如下:

private static final Logger LOG = Logger.getLogger($CLASS_NAME$.class);$END$

where$CLASS_NAME$被配置为className()用作其表达式。

不幸的是,我没有找到任何关于添加导入语句的文档。是否有与 Eclipse 等价的东西${:import(...)}

4

4 回答 4

117

根据这篇文章,它打算只使用完全限定的表达式。我试过了,这对我有用:

private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger($CLASS_NAME$.class);$END$

IDEA 会自动缩短它并添加必要的导入语句:

import org.apache.log4j.Logger;
// ...
private static final Logger LOG = Logger.getLogger(MyClass.class);

如果您想自己尝试,请注意您首先必须通过Edit variablesCLASS_NAME定义为。还要确保您通过Change(在底部)允许您的 Live Template for Java 声明。这是最终设置的屏幕截图:className()

在此处输入图像描述

于 2013-06-19T12:09:59.897 回答
5

只是为了在这里为新访客节省一点时间:接受的答案现在需要一些更改。
转到Settings -> Editor -> Live Templates,选择others,添加模板:

private static final org.apache.logging.log4j.Logger logger = org.apache.logging.log4j.LogManager.getLogger($CLASS_NAME$.class);$END$

然后,按Edit Variables左侧并设置表达式CLASS_NAMEto className()
毕竟,将底部的上下文设置为Java -> DeclarationGroovy -> Declaration如果需要)。导入将在插入时神奇地生成。

于 2018-08-14T11:21:13.073 回答
1

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

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

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

在此处输入图像描述

于 2020-06-18T16:32:17.510 回答
-2

对于 apache commons 日志使用:

private static final org.apache.commons.logging.Log LOG = org.apache.commons.logging.LogFactory.getLog($CLASS_NAME$.class);$END$
于 2017-08-06T15:55:48.857 回答