gpt4 book ai didi

java - 是否有像 "must avoid"这样的 javadoc 标签?

转载 作者:行者123 更新时间:2023-11-30 05:34:27 25 4
gpt4 key购买 nike

我正在编写一个有点强大的方法,我想向我的用户发出警告,告诉他“更好地了解你在做什么”,就像 @deprecated 的行为方式一样。我可以将其写为方法名称,但我想知道是否有一种更优雅的方法来执行此操作。

公开课部门{

public Divison() {
}

private int up;
private int down;


public int eval() {
return ((int) up/down);
}

public void setVars(int up, int down) {
this.up = up;
if (up%down == 0) {
this.down = down;
} else {
throw new ArithmeticException("the values must be divisible");
}
}

public void betterKnowWhatYouDoingSetVars(int up, int down) {
this.up = up;
this.down = down;
}

}

最佳答案

允许外部世界打破你的invariants从来都不是一个好主意,因为你的类变得毫无用处:因为我不能依赖其内部状态的一致性,所以它只是一堆彼此无关的值。要编写正确的程序,我需要在每次使用该类之前内联复制所有验证逻辑。

顺便说一句,即使没有 betterKnowWhatYoureDoing... 方法,您的示例实现也可能会处于不一致的状态,而且我什至没有提到多线程。您可以通过简单地使类不可变并在构造函数中进行检查来防止这种情况。

我认为在走这条路之前你应该彻底重新评估你的设计。

如果您必须提供此类功能(我几乎无法想象任何原因),至少将其设为包私有(private)(而不是公共(public)记录 为“危险”)。

此外,那些真正知道自己在做什么的人可能永远不会调用该方法,所以这有点毫无意义......:)

关于java - 是否有像 "must avoid"这样的 javadoc 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56894303/

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