getXXX
用作XXX
的获取者。例如
class Foo {
private String XXX;
public String getXXX() {
return XXX;
}
}
所以,它清楚,毫无疑问。现在让我们考虑以下情况:
class Foo {
public String getXXX() {
String XXX;
//some calculations, resolvings etc
return XXX;
}
}
根据命名惯例,我可以在这种情况下将我的方法命名为getXXX
吗?或者换句话说,getXXX
是否假设类中有XXX
字段,我们希望根据命名约定返回此字段值?
答案 0 :(得分:3)
当我编写一个返回某个东西并且不是一个愚蠢的getter的方法时,我经常会在get
作为前缀之前进行思考,以避免让类客户感觉该方法是一个愚蠢的getter。
例如,假设它进行相对昂贵的计算,诸如getFoo()
之类的名称可能会产生误导。
通常,如果我找到比get
更好的前缀,我会使用它。例如,有时候find()
或compute()
会更有意义
但由于其他前缀不匹配,我不会试图太聪明,我保留get
另外,为了更清楚,你应该使用javadoc来指定合同和方法的意图(如果它很重要)并且可以使API对于类的客户更友好。
答案 1 :(得分:2)
1)一般的Java命名约定不包含getter: http://www.oracle.com/technetwork/java/codeconventions-135099.html
2)getter是javabeans命名约定的一部分,您可以在其中定义getXxx / isXxx方法以获取属性xxx的值。同时,您不必将此getter与成员变量保持同步 - 成员变量是私有的(包私有)并且是预期的。如果必须,你甚至可以删除成员变量 - 当存在访问器方法时,bean属性存在。
也就是说,知道你在做什么,你可以在getter和setter中使用任何计算。
3)尽管你可以使用计算,但保持快速吸气是一种很好的做法。没有人希望你的吸气者能够计算一小时的东西。
如果你必须先计算一些大的东西,那就做一些缓存,不要每次都运行计算。在特殊的init()/ prepare()方法中进行计算也是个好主意。
将javadoc评论添加到您的getter中也是个好主意。
4)如果将成员变量暴露给类用户,则会出现问题。例如,如果在JAXB中将属性绑定到成员变量,则可能会错过具有特殊功能的getter。
对于这种情况,没有getter的POJO可能比具有自定义行为的复杂类更容易处理。但仔细设置访问器绑定没有任何问题,它只需要更多的按钮和一些额外的思考。
答案 2 :(得分:0)
如果您一直想对返回的值执行某些操作,那么您可以使用Domain A (with SSL in frontend)
Page 1
News (folder)
News A
News B
Domain B (with SSL in frontend)
Page 2
Page 3
,否则,请使用单独的名称,因为您可能希望在该行的某处读取原始值。