【问题标题】:Logic in setter or gettersetter 或 getter 中的逻辑
【发布时间】:2013-07-13 20:59:38
【问题描述】:

我想知道建议将 if 语句等逻辑放在哪里,我应该在 setter 中还是在 getter 中放置?例如,当我尝试在 setter 中执行此操作时,它不起作用:

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

但是当我在吸气剂中这样做时它正在工作,然后我只返回性别;一切都应该如此。那么为什么这个语句在 setter 中不起作用呢?

【问题讨论】:

  • 这不是关于如何比较字符串,而是在哪里放置语句...
  • setter 和 getter 方法之间没有这样的区别。你应该遗漏一些与 setter getter 无关的东西。

标签: java setter getter getter-setter


【解决方案1】:

判断逻辑最好放在getter还是setter(或两者都不),并没有固定的规则。您必须根据您的应用程序做出决定。

一般而言,我建议在 getter 中执行此操作,因为可能永远不会请求性别,在这种情况下,如果您在 setter 中执行此操作,您将浪费微不足道的处理能力和内存。

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

【讨论】:

  • 有意义,例如我的代码示例在 getter 中工作,但不在 setter 中。你知道为什么吗?
  • 没有明显的原因,如果你发布代码也许我可以告诉你
  • 好的,这实际上是我想知道的一切,如果没有明显的原因,我必须再次检查我的代码。非常感谢您的解释。一开始我认为在 setter 中这样做可能是错误的,但现在我明白了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多