我有一个实体。我将变量定义为布尔值,并使用Intellij Idea快捷方式创建了Getter和Setter方法。
private Boolean isForLaboratory = false;
创建后生成:
public Boolean getForLaboratory() {
return isForLaboratory;
}
public void setForLaboratory(Boolean forLaboratory) {
isForLaboratory = forLaboratory;
}
我期待getIsForLab和setIsForLab。这是Java的惯例吗?为什么Intellij删除了我的前缀?
在IntelliJ版本15中,您必须使用原始布尔值使IntelliJ生成带有“is”前缀的Get函数。
默认的Getter模板如下所示:
#if ($field.boolean && $field.primitive)
#if ($StringUtil.startsWithIgnoreCase($name, 'is'))
#set($name = $StringUtil.decapitalize($name))
#else
is##
#end
因此,IntelliJ 15.x及更高版本中的正确方法应该如下所示:
private boolean forLaboratory = false;
自动生成后:
public boolean getForLaboratory() {
return forLaboratory;
}
public void isForLaboratory(boolean forLaboratory) {
this.forLaboratory = forLaboratory;
}
如果您弹出对话框来生成Getter和Setter,您可以看到:
Getter template: IntelliJ Default
Setter template: IntelliJ Default
单击标签为“…”的“Getter Template”右侧的按钮,您可以看到模板代码包括以下内容:
#if ($StringUtil.startsWithIgnoreCase($name, 'is'))
#set($name = $StringUtil.decapitalize($name))
#else
is##
换句话说,对于以is开头的字段有特殊处理,如果您想编写自己的模板,当然可以这样做:)
至于原因,有一个用于布尔字段的javabeans标准,其中名为(例如)boolean enabled的字段的getter可以是
isEnabled()
,而不是getEnabled()
,这肯定与此相关。
我在IntelliJ中为setter创建了一个自定义模板。当我使用Alt Insert时,我可以选择该模板,而且效果很好。 但是,当我尝试按Alt-Enter生成缺少的setter时,它使用IntelliJ默认值。 如何使Alt Enter完成使用我的自定义模板而不是默认?
问题内容: 例如。 您将其命名为getter和setter吗? 问题答案: 假设你有 访问器方法将是 也可以看看 Java编程/ Java Bean Java编程语言的代码约定
问题内容: 我有一个使用默认名称空间打印的文件。元素以ns2前缀打印,我需要将其删除,以及与我的代码的关系: 我希望它是: 这就是我的编码方式,据我所知,这足以使ns2消失: 生成的package-info结果如下: 我创建如下文件: generateClassesPackage是其中package-info.java及其元素所在的包。 Foo对象已定义,并具有以下元素: 我错过了吗?还是我误解了
我有一个扩展JTextField的类,我想让CTRL-Shift-O做一些事情。我一直在听 在e.isControlDown()和e.isShiftDown()的帮助下,这种方法运行良好。但我注意到字段中的文本也在从左边向右边移动。显然,这是JTextField的默认行为。所以我在So上找到了这个线程,它似乎很有帮助: 如何禁用JTextField中的默认textfield快捷方式 尽管Syste
This function is called when a template cannot be obtained from its resource. 该函数在模板不能从它的源目录下获取时会得到调用.
我们想断言,自定义对象列表包含一个对象,其某些字段具有特定的值,以及一系列类似这样的断言 然而,自定义对象也有布尔类型字段,其中getter方法有一个“is”前缀而不是“get”,在那里断言似乎在以下情况下失败 是否有现成的解决方案来克服这一点,或者它应该用某种自定义匹配器来处理?