我试图创建null安全模板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);
}
但是当尝试创建getter时,我得到错误:
不正确的方法'可选get Product(){返回Optional.ofNullable(产品);} '
看起来模板既不能解析字段类型,也不能正确地将'get'与fieldName(空格)连接起来。
有人能帮忙吗?我的IntelliJ版本:2020.03.04
模板中的任何空格都包含在生成的代码中。大多数将在生成后自动进行的重新格式化中再次删除。但是方法名中的空白会破坏代码,并且重新格式化也无法修复它。因此,您需要删除#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);
}