gpt4 book ai didi

java - 反转 boolean 属性的值

转载 作者:行者123 更新时间:2023-11-29 08:05:40 25 4
gpt4 key购买 nike

我有一个由数据库表支持的 (Java) 对象。在数据库中,(新)列中的“N”值表示禁止某些内容,而“Y”或 null(默认)值表示允许某些内容。

在我的对象中,我希望具有相同的效果:默认情况下 forbidden = false,但如果需要,可以将其设置为 true。我正在使用现有代码,所以我不想修改构造函数。

但是,该属性的使用方式很可能(我认为更容易理解)是肯定的:isAllowed()/setAllowed()。因此,我将我的代码设置为:

public boolean isAllowed()
{ return !this.forbidden; }
public void setAllowed(boolean allowed)
{ this.forbidden = ! allowed; }
  1. 其他人是否认为 if ([!]isAllowed()) {...}if ([!]isForbidden()) {...},还是我做出了错误的假设?
  2. 我的代码有意义吗? (是的,我正试图正确地评论它,这就是我问的原因。)
  3. 我的主要问题:这种调整是否有一个约定俗成的名称?由字段支持的 boolean 属性,该字段携带与公开属性相反的值。

谢谢。

最佳答案

(1) Does anyone else consider if ([!]isAllowed()) {...} to be more understandable than if ([!]isForbidden()) {...}...

是的。积极的通常是要走的路。不总是,但通常。考虑代码想要根据是否允许某些事情 进行分支的情况:

if (something.isAllowed()) {
// do the thing
}

对比

if (!something.isForbidden()) {
// do the thing
}

第一个读起来更流畅。 (但这是主观的。)

就FWIW而言,我可能也会将数据成员设为allowed,而不是forbidden。所以你不会在访问器中反转它。因为上面的论点同样适用于直接使用该字段的代码(假设您有这样做的代码)以及使用访问器的代码。

(2) Does my code make sense?

除了支撑风格,是的。 :-)(风格就是风格,完全是你自己的决定。)

(3) - My main question: Is there a conventional name for this kind of tweak?

我从来没有听说过,它真的不够普遍。我想您正在做一些含糊 外观或类似适配器的事情,但这是一个真正的延伸。 :-)

关于java - 反转 boolean 属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11453546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com