这是我要移植的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$
其中$CLASS_NAME$
配置为使用className()
作为其表达式。
不幸的是,我没有找到有关添加import语句的任何文档。是否存在与Eclipse ${:import(...)}
等效的东西?
答案 0 :(得分:93)
根据this post,似乎只打算使用完全限定的表达式。我试了一下,这对我有用:
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);
答案 1 :(得分:3)
只需在这里为新访客节省一点时间:现在接受的答案需要进行一些更改。
转到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_NAME
的表达式设置为className()
。
毕竟,将底部的上下文设置为Java -> Declaration
(如果需要,还可以设置Groovy -> Declaration
)。
导入将在插入时神奇地生成。
答案 2 :(得分:0)
现在可以使用静态导入添加实时模板:
您必须在“选项”中检查静态导入
@org.junit.Test
public void should$EXPR$when$CONDITION$() {
org.junit.Assert.assertThat(null, org.hamcrest.CoreMatchers.is(org.hamcrest.CoreMatchers.nullValue()));
}
答案 3 :(得分:-2)
对于apache commons日志记录使用:
private static final org.apache.commons.logging.Log LOG = org.apache.commons.logging.LogFactory.getLog($CLASS_NAME$.class);$END$