使用eclipse的布尔Getter和Setter

时间:2012-11-27 05:10:09

标签: java eclipse

我想知道为什么eclipse会产生以下getter和setter,如果我使用以下布尔值:

boolean isLifeTimeMember

Image

getter应该是isIsLifeTimeMember()而不是isLifeTimeMember()

我认为它影响了在JSP中调用变量isLifeTimeMember。因为它会查看JSP并将其映射到isIsLifeTimeMember()getter方法。

因为没有isIsLifeTimeMember()方法会导致错误,但是eclipse生成的getter是isLifeTimeMember()

谢谢。

2 个答案:

答案 0 :(得分:15)

Eclipse名称生成规则是布尔getter应该以{{1​​}}开头。如果变量名称已经以is开头,那么它认为不需要额外的前缀。

Eclipse有一个设置可以控制is对生成的布尔getter的使用。打开首选项并导航到is。在那里你可以取消选中“使用'是'前缀用于返回布尔值的getter”。 Eclipse生成的布尔getter将以“get”开头,就像所有其他的一样。

顺便说一下,Java在使用具有相同名称的字段和方法时没有问题。

但是,使用以“is”开头的属性名称可能会导致jsp出现问题。如this thread中所述,最好避免使用类似问题的属性名称(isLifeTimeMember),而只是将属性本身用作属性名称(lifeTimeMember)。

代码示例:

Java > Code Style

在JSP中,如果需要使用此变量,只需使用变量名“lifeTimeMember”。

答案 1 :(得分:2)

在布尔变量的情况下,eclipse将is添加到变量名称前以形成getter名称。即如果变量为boolean present;,那么已对齐的getter将命名为isPresent();

不建议在变量名中加is

如果变量名称为ispresent,则在jsp上,您将按变量名ispresent进行查找,而变量名isispresemt();依次查找其getter,它是一个布尔值,因此它假定getter为is由于eclipse中的getter setter生成器在变量名中已经存在的情况下不会添加could not find the field ispresent,因此不存在。

因此预计会抛出异常is

在字段名称中包含{{1}},可能会导致问题,避免使用它们