Intellij Live模板


81

有什么方法可以在Intellij中使用默认标记值Live templates吗?例如,我有以下实时模板,该模板声明一个私有变量,几乎要为每个类创建一个私有变量:

private static final Logger logger = Logger.getLogger($CLASS$.class)

似乎$CLASS$每次使用此实时模板时都无需键入,因为它可以从作用域或文件名中的类派生。我想知道是否可以在实时模板中使用环境定义的令牌作为默认值?

Answers:



54

log4j:

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

slf4j:

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

确保将适用的上下文设置为Java,并缩短FQ名称跳过(如果已定义)


3
我喜欢本文提到的用于设置en表达式以使用合理的默认值填充变量的附加功能。 coderwall.com/p/hzmhbw
Snekse 2014年

@Snekse这是一个很好的补充。欢迎您通过编辑来改善我的答案。
Nowaker

这个答案实际上并没有回答提问者的问题:要$CLASS_NAME$使用类名自动填充变量,您需要将与$CLASS_NAME$变量关联的“表达式”设置为className()。有关屏幕截图,请参见CrazyCoder的答案。
阿迪尔·侯赛因

3

log4j 2:

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

这个答案实际上并没有回答提问者的问题:要$CLASS_NAME$使用类名自动填充变量,您需要将与$CLASS_NAME$变量关联的“表达式”设置为className()。有关屏幕截图,请参见CrazyCoder的答案。
阿迪尔·侯赛因
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.