【问题标题】:IntelliJ LiveTemplate getter snippet with unnecessary space带有不必要空间的 IntelliJ Live Template getter 片段
【发布时间】:2022-08-19 16:03:11
【问题描述】:

我试图用这样的代码为getter(返回可选)创建空安全模板:

#if($field.modifierStatic)
static ##
#end
Optional<$field.type> ##
#if($field.recordComponent)
    ${field.name}##
#else
    #set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
    #if ($field.boolean && $field.primitive)
    is##
    #else
    get##
    #end
    ${name}##
#end
 () {
return Optional.ofNullable($field.name);
}

但是在尝试创建吸气剂时出现错误:

方法不正确\'可选get Product(){return Optional.ofNullable(product); }\'

看起来模板既不能解析字段类型,也不能正确地将“get”与字段名称(之间的空格)连接起来。

有人可以帮忙吗?我的 IntelliJ 版本:2020.03.04

标签: java intellij-idea getter live-templates


【解决方案1】:

模板中的任何空格都包含在生成的代码中。大多数会在生成后自动发生的重新格式化中再次删除。但是方法名称中的空格会破坏代码并且重新格式化不会修复它。因此,您需要删除 #if 语句的缩进以避免这种情况。

该模板应该可以工作:

#if($field.modifierStatic)
static ##
#end
Optional<$field.type> ##
#if($field.recordComponent)
    ${field.name}##
#else
    #set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if ($field.boolean && $field.primitive)
is##
#else
get##
#end
${name}##
#end
() {
return Optional.ofNullable($field.name);
}

【讨论】:

    猜你喜欢
    • 2018-10-03
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多