2013-07-13 26 views
2

我想知道它在哪里建议放置逻辑,如if语句,我应该在setter还是getter中执行?例如,当我试图做到这一点的二传手它不工作:setter或getter中的逻辑

if ("female".equals(gender)) { 
    this.gender = "girl"; 
} 

,但是当我在吸气做到这一点这是工作,然后我就回到性别;并且一切都是如此。那么为什么这个声明不适用于二传手?

+0

可能的重复[如何比较Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

+0

这不是关于如何比较字符串,但在哪里放置语句... –

+0

setter和getter方法之间没有这种区别。你应该错过与setter getters无关的东西。 – erencan

回答

1

对于判断是否最好将逻辑放在gettersetter(或两者都不)中没有固定的规则。您必须根据您的应用程序来决定。

一般来说,我建议在getter中这样做,因为性别可能永远不会被请求,在这种情况下,如果您在setter中执行了这样的操作,那么您已经浪费了无足轻重的处理能力和内存。

此外,逻辑可能会附加到其他字段,可能在您设置性别时与您请求时相比,可能不具有相同的值。

+0

有道理,例如我的代码示例在getter中工作,但不在setter中。你也许知道为什么? –

+0

没有明显的原因,如果你发布的代码,也许我可以告诉你 –

+0

好吧,这实际上是我想知道的一切,如果没有明显的原因,我必须再次检查我的代码。非常感谢您的解释。首先,我认为在二传手中这样做可能是错误的,但现在我明白了。 –