【问题标题】:Intellij Live TemplateIntellij 实时模板
【发布时间】:2011-05-23 13:11:01
【问题描述】:

有没有办法在 Intellij Live templates 中使用默认令牌值?例如,我有以下实时模板,它声明了一个我想为几乎每个类创建的私有变量:

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

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

【问题讨论】:

    标签: java intellij-idea live-templates


    【解决方案1】:

    检查其他一些已经使用当前类名的模板:

    【讨论】:

    【解决方案2】:

    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,并启用shorten FQ namesskip if defined

    【讨论】:

    • 我喜欢本文提到的附加功能,用于设置 en 表达式以使用合理的默认值填充变量。 coderwall.com/p/hzmhbw
    • @Snekse 这是一个很好的补充。欢迎您通过编辑来改进我的答案。
    • 这个答案实际上并没有回答提问者的问题:要使用类名自动填充$CLASS_NAME$ 变量,您需要将与$CLASS_NAME$ 变量关联的“表达式”设置为@ 987654326@。请参阅 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$ 变量987654324@。请参阅 CrazyCoder 的答案以获取屏幕截图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2014-10-10
    • 1970-01-01
    • 2016-08-27
    • 2016-07-29
    • 2014-08-24
    相关资源
    最近更新 更多