在intellij模板中区分int和double



我正在IntelliJ中定义一个自定义的toString模板。IntelliJ提供了一个基于Velocity脚本语言的模板系统。很棒的东西!

但我现在面临着一个特殊的问题。我需要区分int字段和double字段。本质上生成类似(简化(的东西:

public String toString() {
String output = "";
output += "myIntField:" + Util.intDescription(myIntField);
output += "myDblField:" + Util.doubleDescription(myDblField);
return output;
}

对于Integer类型,它可以很好地工作,但我似乎无法使它适用于基元int

#if ($member.typeQualifiedName == "java.lang.Integer")
...
#end
#if ($member.typeName == "Integer")
...
#end

我可以用$member.primitive$member.numeric这样的方法来构造,但它们都不能区分doubleint

IntelliJ的文档给我的印象是我已经走到了死胡同。

PS:当然可以通过更改java代码/api来解决,这可以简化toString()方法所需的格式。但这对我来说真的是最后的手段。

#elseif ( $member.type == 'double' )
output += "myDoubleField:" + Util.doubleDescription(myDoubleField);
#elseif ( $member.type == 'int' )
output += "myIntField:" + Util.intDescription(myIntField);

无论出于何种原因,$member.isDouble属性对我来说都不可访问。它没有列在IntelliJ的文档、VTL参考或VTL用户指南中,.type.也没有

我首先打印出$member,它列出了这个对象的所有属性。我不知道为什么它会被列为Double。

相关内容

  • 没有找到相关文章

最新更新