# toString() 生成设置对话框

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com.cn/help/idea/llms.txt).

`代码 | 生成 - toString() - 设置`

## 设置选项卡

|  条目  |  描述  |
| --- | --- |
|  在代码生成中使用完全限定类名 ($classname)  |  如果选中此复选框，转储的类名将包括它们的包名。 (  `$classname`  变量在 [Velocity 模板](#templates))  |
|  在代码生成中启用 getter ($method)  |     如果选中此复选框，代码生成器将在 Velocity Macro Language 中拥有  `$methods`  变量。       见 [示例 2](generating-code.html#generate-tostring)。     |
|  移动文本光标到生成的方法  |  如果选中此复选框，则文本光标将滚动到生成的  `toString()` 方法。  |
|  对元素进行排序  |  如果选中此复选框，则成员将按照选择的顺序（升序或降序）排序。  |
|  当方法已存在时  |  在本节中，选择默认的冲突解决策略：     * 询问 ：选择此选项以请求确认是否已有 `toString()` 方法。 IntelliJ IDEA 显示对话框 替换现有的 toString 方法 。 答案 是 将会生成新的 `toString()` 方法替换现有的方法；答案 否 将会创建一个重复的方法。    * 替换现有 ：选择此选项以自动替换现有的 `toString()` 代码。    * 生成重复方法 ：选择此选项来创建 `toString()` 方法的副本；这样做之后，新方法将命名为 `toString()` ；现有代码不会被擦除。    |
|  在哪里插入?  |  在本节中，选择插入生成的  `toString()`  方法的位置。 可能的选项包括：     * 文本光标处 .    * 在 equals() 和 hashCode() 之后 ：生成的 `toString()` 方法将插入到 Java 类中的 equals/hashCode 之后（如果存在的话）；否则，新方法将插入到当前光标位置。    * 类的末尾 ：生成的 `toString()` 方法将作为最后一个方法插入。    |
|  排除  |  在本节中，选中元素旁的复选框以将其排除在  `toString()`  方法生成之外：     * 排除常量字段 ：如果选中此复选框，则任何常量将不成为代码生成器可用字段的一部分。    * 排除静态字段 ：如果选中此复选框，则具有静态修饰符的任何字段都不会成为代码生成器的可用字段。    * 排除瞬态字段 ：如果选中此复选框，则带有 transient 修饰符的任何字段都不会成为代码生成器的可用字段的一部分。    * 排除枚举字段 ：如果选择该复选框，则任何类型为 `enum` （JDK1.5）的字段将不会成为代码生成器的可用字段。    * 排除记录器字段 （Log4j，JDK Logging，Jakarta Common Logging）：如果选中此复选框，则任何 Log4j Logger、Java JDK Logger 或 Jakarta Commons Logger 类型的字段将不会成为代码生成器的可用字段。    * 通过名称排除字段（正则表达式） ：如果选中此复选框，则 IntelliJ IDEA 将对字段名进行正则表达式匹配。 如果结果是 true ，那么该字段将不会成为代码生成器可用字段的一部分。    * 通过类型名称（正则表达式）排除字段 ：如果选中此复选框，IntelliJ IDEA 将对字段类型名称（完全限定名称）执行正则表达式匹配。 如果结果是 true ，该字段将不会成为代码生成器可用字段的一部分。    * 按名称排除方法（正则表达式） ：如果选择此复选框，则 IntelliJ IDEA 会对方法名称执行正则表达式匹配。 如果结果为 true ，该方法将不会成为代码生成器可用方法的一部分。    * 排除返回类型名称的 方法（正则表达式） ：如果选择了此复选框，则 IntelliJ IDEA 将对方法返回类型名称（完全限定名称）执行正则表达式匹配。 如果结果为 true ，该方法将不会成为代码生成器可用方法的一部分。    |

## 模板 选项卡

使用此页面查看和管理将用于  `toString()` 方法生成的Velocity模板列表。

### 模板工具栏

|  条目  |  描述  |
| --- | --- |
|  ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)  |  点击此按钮以创建一个新条目到可用模板列表。 当新条目被添加时，创建相应的模板。  |
|  ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.remove.svg)  |  点击此按钮即可从可用模式列表中删除所选的用户创建的条目。 请注意，预定义模板无法删除。  |
|  ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.copy.svg)  |  点击此按钮以创建现有模板的副本。  |

### 用于 Velocity 模板的变量

|  变量  |  返回  |  描述  |
| --- | --- | --- |
|  $classname  |  字符串  |  类名（如果在设置中选择，可以是限定的类名）。  |
|  $FQClassname  |  字符串  |  @deprecated （请使用 $class.qualifiedName）——类的完全限定名  |
|  $fields  |  java.util.List  |  FieldElement 对象列表  |
|  $methods  |  java.util.List  |  方法元素对象列表  |
|  $members  |  java.util.List  |  字段元素 和 方法元素 对象的列表  |
|  $member  |  Element  |  元素对象  |
|  $member.accessor  |  字符串  |  字段或方法的访问器。 对于字段，它是  `$field.name` ，对于方法，它是  `$method.methodName` 。  |
|  $member.typeName  |  字符串  |  类型的类名（Object，String，List等）  |
|  $member.typeQualifiedName  |  字符串  |  类型的限定类名（java.lang.Object、java.lang.String、java.util.List 等）  |
|  $member.array  |  boolean  |  检查类型是否为数组类型（原始数组或对象数组）。  |
|  $member.primitiveArray  |  boolean  |  检查类型是否为基本数组类型（int[]、short[]、float[] 等）  |
|  $member.objectArray  |  boolean  |  检查类型是否为对象数组类型（Object[]、String[]等）。  |
|  $member.stringArray  |  boolean  |  检查类型是否为字符串数组类型 (String[])  |
|  $member.collection  |  boolean  |  检查类型是否可从 java.util.Collection 赋值。  |
|  $member.list  |  boolean  |  检查类型是否可从 java.util.List 分配  |
|  $member.map  |  boolean  |  检查类型是否可从 java.util.Map 分配  |
|  $member.set  |  boolean  |  检查类型是否可以从 java.util.Set 分配  |
|  $member.primitive  |  boolean  |  检查类型是否为原始类型（int、char、float等）  |
|  $member.modifierStatic  |  boolean  |  类型是否具有 static 修饰符？  |
|  $member.modifierPublic  |  boolean  |  该类型是否有 public 修饰符？  |
|  $member.modifierProtected  |  boolean  |  类型是否具有受保护的修饰符？  |
|  $member.modifierPackageLocal  |  boolean  |  类型是否具有包局部修饰符？  |
|  $member.modifierPrivate  |  boolean  |  该类型是否具有 private 修饰符？  |
|  $member.modifierFinal  |  boolean  |  该类型是否有 final 修饰符？  |
|  $member.string  |  boolean  |  类型是否可从 java.lang.String 赋值？  |
|  $member.numeric  |  boolean  |  类型是否可以从 java.lang.Numeric 或 byte、short、int、long、float、double 的原始类型进行分配？  |
|  $member.object  |  boolean  |  类型是否可从 java.lang.Object 分配？  |
|  $member.date  |  boolean  |  类型是否可由 java.util.Date 赋值？  |
|  $member.calendar  |  boolean  |  类型可以从 java.util.Calendar 分配吗？  |
|  $member.boolean  |  boolean  |  类型是否可以从 java.lang.Boolean 或原始 boolean 分配？  |
|  $field  |  字段元素  |  FieldElement 对象  |
|  $field.name  |  字符串  |  字段的名称。  |
|  $field.modifierTransient  |  boolean  |  该字段是否有 transient 修饰符？  |
|  $field.modifierVolatile  |  boolean  |  字段是否有 volatile 修饰符？  |
|  $field.constant  |  boolean  |  字段是常量类型吗？ （具有 static 修饰符且其名称仅为 UPPERCASE）  |
|  $field.matchName(regexp)  |  boolean  |  对字段名称执行正则表达式匹配。  |
|  $field.enum  |  boolean  |  该字段是枚举类型吗？  |
|  $method  |  方法元素  |  方法 Element 对象  |
|  $method.name  |  字符串  |  此变量返回以下之一：     * 此 getter 方法所覆盖字段的名称    * 当方法不覆盖字段时，方法的名称 'getFoo'    |
|  $method.methodName  |  字符串  |  方法的名称 (getFoo)。  |
|  $method.fieldName  |  字符串  |  此 getter 方法涵盖的字段名称——如果该方法不是字段的 getter 方法，则为 null  |
|  $方法.抽象修饰符  |  boolean  |  这是一个抽象方法吗？  |
|  $method.modifierSynchronized  |  boolean  |  这是一种同步方法吗？  |
|  $method.returnTypeVoid  |  boolean  |  这个方法是 void 方法（不返回任何内容）吗？  |
|  $method.getter  |  boolean  |  这是 getter 方法吗？  |
|  $method.matchName(regexp)  |  boolean  |  对方法名称执行正则表达式匹配。  |
|  $method.deprecated  |  boolean  |  该方法已弃用吗？  |
|  $class  |  ClassElement  |  类元素对象  |
|  $class.name  |  字符串  |  类的名称  |
|  $class.matchName(regexp)  |  boolean  |  对类名执行正则表达式匹配。  |
|  $class.qualifiedName  |  字符串  |  类的完全限定名  |
|  $class.hasSuper  |  boolean  |  这个类有超类吗？ （扩展另一个类——注意，扩展 java.lang.Object 不被认为具有超类）  |
|  $class.superName  |  字符串  |  超类的名称（如果没有超类则为空）  |
|  $class.superQualifiedName  |  字符串  |  超类的完全限定名（如果没有超类则为空）  |
|  $class.isImplements("interfaceName")  |  boolean  |  检查该类是否实现了指定的接口。 可以通过用逗号分隔多个接口的名称来检查名称。  |
|  $class.implementNames  |  String[]  |  返回该类实现的接口的类名。 如果该类未实现任何接口，则返回一个空数组。  |
|  $class.isExtends("className")  |  boolean  |  检查该类是否扩展了任何给定的类名。 可以通过用逗号分隔名称来检查多个类名。  |
|  $class.exception  |  boolean  |  此类是否为异常类（继承 Throwable）？  |
|  $class.deprecated  |  boolean  |  这个类已弃用吗？  |
|  $class.enum  |  boolean  |  这是一个枚举类吗？  |
|  $class.abstract  |  boolean  |  这个类是抽象的吗？  |
|  输出变量  |  在 Velocity Template 中可能存在输出变量（变量存储在 Velocity Context 中）：在 Velocity context 执行并生效后，输出参数将可用于 Generate 操作。  |
|  $autoImportPackages  |  字符串  |  应自动导入的包名。 使用逗号分隔包名。  |

## 运作方式

* [生成 toString()](generating-code.html#generate-tostring)

