java - 为什么 Intellij 默认的 getter/setter 模板会删除我的 boolean 值 "is"变量名前缀?

标签 java intellij-idea coding-style

我有一个实体。我将变量定义为 boolean 值,并使用 Intellij Idea Shortcuts 创建了 Getter 和 Setter 方法。

private Boolean isForLaboratory = false;

ddasd

enter image description here

创建后它生成了这个:

public Boolean getForLaboratory() {
    return isForLaboratory;
}

public void setForLaboratory(Boolean forLaboratory) {
    isForLaboratory = forLaboratory;
}

我期待 getIsForLaboratory 和 setIsForLaboratory。它是 Java 的通用约定吗?为什么 Intellij 删除了我的前缀?

最佳答案

如果弹出GenerateGetter and Setter的Dialog,可以看到:

Getter template: IntelliJ Default
Setter template: IntelliJ Default

点击Getter Template右边标有...的按钮,可以看到模板代码包括以下内容:

#if ($StringUtil.startsWithIgnoreCase($name, 'is'))
  #set($name = $StringUtil.decapitalize($name))
#else
  is##

换句话说,对于以 is 开头的字段有特殊处理 - 如果您想编写自己的模板,您当然可以这样做:)

至于为什么 - boolean 字段有一个 javabean 标准,其中名为(例如)boolean enabled 的字段的 getter 可以是 isEnabled() 而不是 getEnabled(),肯定和这个有关。

关于java - 为什么 Intellij 默认的 getter/setter 模板会删除我的 boolean 值 "is"变量名前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37801457/

相关文章:

java - 使用可变键映射并发

android - 如何从 Android Studio 中的忽略文件生成器中删除用户模板?

intellij-idea - intellij 访问无效的虚拟文件

java - 简化 if(执行某些操作)然后返回

java - 从多个不同类型的用户输入创建一个数组

java - @OneToOne 单向级联没有通过sql查询删除

java - IntelliJ IDEA 15 不生成 .class 文件

C++ 和覆盖问题

html - 命名 "class"和 "id"HTML 属性 - 破折号与下划线

java - 为什么返回语句不执行?