你能解释一下Java中的“isXxx”方法名吗?

时间:2011-08-23 01:48:17

标签: java spring-mvc annotations

在其中一个规范中是否有对以“is”开头的方法的引用,而方法名称的后缀是属性的名称(类似于Java bean的getter / setter方法)?

例如:

public boolean isConditionTrue() {
   ...
   ...
}

private boolean conditionTrue;

谢谢!

3 个答案:

答案 0 :(得分:24)

这是一个Java命名约定,

  

如果方法返回boolean值,请使用ishas作为前缀   方法名称。例如,使用isOverdrawnhasCreditLeft   返回truefalse值的方法。避免使用这个词   not方法名称中的boolean代替使用!运算符。对于   例如,使用!isOverdrawn代替isNotOverdrawn

另见:


根据Java语言规范,

  

测试关于对象的boolean条件V的方法应该是   名为isV。一个例子是类isInterrupted的方法Thread

答案 1 :(得分:9)

仅对原始布尔值有效。以下摘自the spec

  

8.3.2布尔属性         另外,对于布尔属性,我们允许getter方法匹配模式:             public boolean是();         可以提供这种“是”方法而不是“获得”方法         od,或者除了“get”方法之外还可以提供。         在任何一种情况下,如果布尔属性存在“is”方法,那么我们将         使用“is”方法读取属性值。         布尔属性的示例可能是:                      public boolean isMarsupial();                      public void setMarsupial(boolean m);

如果要将它们与JSTL标记(使用isXxx() : Boolean语法)结合使用,请注意使用${object.xxx}函数。他们不会选择它,你必须将其修改为getXxx() : Boolean

答案 2 :(得分:6)

is boolean类型实例变量的访问器方法前缀boolean

这是get/set数据类型的惯例,而convention是其他类型的{{1}}。