Intellij Idea中定制getter setter的模板

如果不想用lombok, 但是又希望代码尽量简洁, 可以用定制getter和setter方法的方式, 让代码尽量紧凑显示

目标格式

public class DemoClass {
private String columnName;
private String varName;
private Class<?> varType;
private boolean primary;
private boolean autoIncrement;
private boolean sortable;
public String getColumnName() {return columnName;}
public void setColumnName(String columnName) {this.columnName = columnName;}
public String getVarName() {return varName;}
public void setVarName(String varName) {this.varName = varName;}
public Class<?> getVarType() {return varType;}
public void setVarType(Class<?> varType) {this.varType = varType;}
public boolean isPrimary() {return primary;}
public void setPrimary(boolean primary) {this.primary = primary;}
public boolean isAutoIncrement() {return autoIncrement;}
public void setAutoIncrement(boolean autoIncrement) {this.autoIncrement = autoIncrement;}
public boolean isSortable() {return sortable;}
public void setSortable(boolean sortable) {this.sortable = sortable;}
}

设置 getter setter 模板

Alt + Ins, 调出快捷菜单后选择 Getter and Setter, 在对话框里, 选择对应的template, 右侧点开后, 可以新建自己的模板并编辑

将getter生成到一行的模板,

#if($field.modifierStatic)
static ##
#end
$field.type ##
#if($field.recordComponent)
${field.name}##
#else
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if ($field.boolean && $field.primitive)
is##
#else
get##
#end
${name}##
#end
() {return $field.name;}

将setter生成到一行的模板

#set($paramName = $helper.getParamName($field, $project))
#if($field.modifierStatic)
static ##
#end
void set$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))($field.type $paramName) {##
#if ($field.name == $paramName)
#if (!$field.modifierStatic)
this.##
#else
$classname.##
#end
#end
$field.name = $paramName;}

因为实际的模板, 会跟随着Idea的版本不断变化, 所以上面的模板并非符合所有情况, 建议的修改方式是用IntelliJ Default复制一份在这个基础上改, 如果被条件语句隔开导致换行, 而你又不希望换行的地方, 可以用##表示不换行.

设置格式避免被格式化自动换行

上面的模板设置完会发现无效, 是因为在写入到编辑器时, 被编辑器的自动格式化换行了. 需要进行以下设置

  1. 打开设置界面 Settings / Editor / Code Style / Java
  2. Wrapping and Braces 下, 勾选Keep when reformatting 下
    • Line breaks
    • Comment at first column
    • Control statement in one line
    • Simple methods in one line
  3. Blank Lines, Minimum blank lines 下
    • Around method in interface 改为 0
    • Around method 改为 0

posted on   Milton  阅读(10337)  评论(0编辑  收藏  举报

编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
历史上的今天:
2015-05-17 Nginx1.9.0的安装
2015-05-17 Tomcat 性能优化

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示