当前位置: 首页 > 知识库问答 >
问题:

用于生成自定义IntelliJ toString方法的Velocity模板

钱和平
2023-03-14

给定类

public class TestClass
{
    private static List<TestClass> tmp = new ArrayList<>();

    private String test1 = "";
    private String test2 = "";
    private String test3 = "";
}

我试图定义一个自定义的intellij代码生成模板,该模板将创建一个tostring()方法,其形式如下

public String toString()
{
    final String output = "%s{ test1[%s], test2[%s], test3[%s] }";

    return String.format(output, this.getClass().getSimpleName(), test1, test2, test3);
}

我有以下速度模板,但输出不正确。

public java.lang.String toString() 
{
#set($i = 0)
final String output = "%s{ #foreach($member in $members)#if($i == 0)$member.accessor [%s]#else,$member.accessor [%s]#end#set($i = $i + 1)#end ";

return String.format(output, this.getClass().getSimpleName() #foreach($member in $members),$member.accessor #end); 
}

输出为

public String toString()
{
    final String output = "%s{ test1 [%s],test2 [%s],test3 [%s] ";

    return String.format(output, this.getClass().getSimpleName(), test1, test2, test3);
}

当我试图向字符串添加一个结束大括号(})时,模板-它无法呈现。

共有1个答案

姜博
2023-03-14

您可以使用${}而不是$来访问变量,这将有助于使用空格:

final String output = "%s{ #foreach($member in $members)#if($i == 0)${member.accessor}[%s]#else, ${member.accessor}[%s]#end#set($i = $i + 1)#end ";
 类似资料:
  • 问题内容: 我想在Eclipse中生成自定义方法,就像我们可以生成toString,getter和沉降器的方式一样(右键单击-> source->)。谁能告诉我这样做涉及什么? 谢谢, 荷兰人 问题答案: 您可以在最近(Eclipse Galileo 3.5)生成动作之后添加自己的动作, 使用主动贡献URI: 具有活动操作定义标识符: 使用有效贡献项目类:(包) 来自贡献插件:org.eclips

  • 本文向大家介绍MyBatis Generator 自定义生成注释的方法,包括了MyBatis Generator 自定义生成注释的方法的使用技巧和注意事项,需要的朋友参考一下 最近做项目,ORM 使用的是 MyBatis,为了偷懒,我自然而然的想到了使用 MyBatis Generator(MBG)来生成数据库表对应的实体代码和 Mapper 代码。于是做了如下的配置(对 MBG 配置不熟悉的同学

  • 问题内容: 有一些方法可以在使用JAXB生成的类中生成自定义方法。 我搜索了包括oracle的教程在内的教程,但没有找到明确的说明来说明如何自定义XML Schema中描述的生成类的方法。 问题答案: 您可以编写一个XJC插件: http://weblogs.java.net/blog/kohsuke/archive/2005/06/writing_a_plugi.html

  • 我试图从一个Liferay模板中发出自定义字段的值。 使用管理员界面,我定义了一个名为“org home page”的新组织级自定义字段,默认值为“tom rules”。 我想在portal_normal中发出这个值。虚拟机 我根据一位同事发送的一些帖子和样本,以及我自己的大量实验,拼凑出了这段代码: 不幸的是,Velocity无法解析表达式,并且保持不变。 以下表达式在portal_normal

  • 我正在使用Swashback为ASP生成swagger文档。NET核心API我正在写。在我的API中,我使用了许多自定义Json转换器,因此我接收和返回的Json看起来与C类的定义不完全一样。例如,我可能有这样一个类: 它将被序列化为 然而,Swashuckle将其记录为 我如何告诉Swashback我的模型是如何序列化和反序列化的?

  • 本文向大家介绍ThinkPHP模板自定义标签使用方法,包括了ThinkPHP模板自定义标签使用方法的使用技巧和注意事项,需要的朋友参考一下 使用模板标签可以让网站前台开发更加快速和简单,使用过dedecms、phpcms等内容管理系统的人应该都知道,cms的前台都是使用模板标签来调用数据。以调用文章列表为例: dedecms可以写成: phpcms可以写成: ThinkPHP的自定义标签同样能够实