我正在定义自己的实时模板,在块注释内使用(依赖)变量时,该行为似乎是错误的(未测试行注释)。
我的模板:
$commentStart$*
* Repository to handle {@link $ClassName$} entities.
$commentEnd$
@DDD.Repository
public interface $EntityName$Repository {
$commentStart$*
* Persists the given instance
* @param $entityName$
* to persist
* @return the given {@code $entityName$}
$commentEnd$
$ClassName$ save($ClassName$ $entityName$);
$END$
}
具有以下变量:
如果我让所有块注释不包含任何变量,模板将按预期工作。另外,我很确定变量
ClassName
应该不是必需的。
我尝试了几种变体,例如删除
blockCommentStart()
并简单地使用 /**
(以及分别使用 end
)。我尝试在所有代码位置使用相同的变量,但如果变量嵌入在注释中,则模板无法工作。
我希望模板根据变量的表达式计算变量并正确插入它们。
最终用文件模板解决了这个问题:
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
/**
* Repository to handle {@link ${NAME}} entities.
*
* @see ${NAME}
*/
@DDD.Repository
public interface ${NAME}Repository {
#set($arg = $NAME.substring(0,1).toLowerCase() + $NAME.substring(1))
/**
* Persists the given instance.
*
* @param ${arg}
* the entity to persist
*
* @return the given {@code ${arg}}
*/
${NAME} save(${NAME} ${arg});
}