我想在选择 Code
> Generate
> Constructor
时自定义 IntelliJ 2017.2 生成的参数的命名:
- 将它们标记为
final
。 - 将
Arg
附加到每个变量名称的末尾。
例如,firstNameArg
&lastNameArg
而不是firstName
&姓氏
。 - 用
@NotNull
注释每个参数。
有没有办法自定义生成构造函数代码?
这个问题,Customizing of code generation in IntelliJ IDEA , 类似,但 (a) 不引用构造函数,并且 (b) 可能已过时。
最佳答案
我认为 IntelliJ 不提供这种 OOTB。你也许可以使用 Live Template通过 Preferences > Editor > Live Templates
。
模板文本:
private final $parameterType$ $parameterName$;
public $constructorClass$(final $parameterType$ $parameterName$$parameterNameSuffix$){
this.$parameterName$ = $parameterName$$parameterNameSuffix$;
}
将实时模板的“适用性”更改为:
Java > 声明
Java > 智能类型完成
点击 Edit variables
并设置与每个变量关联的 Expression
,如下所示:
- 参数类型:completeSmart()
- 参数名:建议变量名()
- 构造函数类:类名()
- 参数名称后缀:驼峰式(字符串)
这里有一些截图展示了它的实际效果:
但是,这种方法有一些注意事项(其中一些可能会破坏您的用例):
- 它不能应用于预先存在的类,即它不能询问一个类,找到它的成员并从中生成构造函数。相反,它是一种触发类成员声明的方式,它会在您声明类成员时即时创建构造函数。
- 如果您希望它支持多个类成员/构造函数参数,那么您可能必须为单个 arg 构造函数创建一个实时模板,然后将其复制到两个参数构造函数和三个参数构造函数等.
关于java - 在 IntelliJ 中自定义 `Code` > `Generate` > `Constructor`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45805187/