gpt4 book ai didi

java - 在方法之前或内部检查因变量的最佳实践

转载 作者:行者123 更新时间:2023-11-30 03:32:49 26 4
gpt4 key购买 nike

我想知道当您有一个变量需要在某个辅助方法运行之前进行检查时,最佳实践是什么。检查应该在调用者还是被调用者中完成?我认为这对双方都有好处。在调用者方法中(在调用辅助方法之前)执行此操作的成本要低一些,但这将检查放在开发人员的肩上,并且如果代码交换手(它会这样做),则可能会丢失一些东西。因此,这就是将其放在被调用者中的好处。下面是一个非常粗略的例子来说明我的意思

public class TestClass implements TestInterface {

private String dependentVariable = null;

public TestClass(arg1) {
}

@Override
public void init(String flag) {
this.dependentVariable = flag;
caller();
}

public void caller() {
//do it here?
if(this.dependentVariable != null)
callee();
}

public void callee() {
//or do the check here?
// do stuff involving the dependentVariable...
}

}

最佳答案

您应该在 init() 本身中处理这个问题。如果您的类行为依赖于此变量,您就不应该让您的类首先使用 null 进行初始化。

@Override
public void init(String flag) {
if (flag == null)
throw IllegalArgumentException("Flag cannot be null");
this.dependentVariable = flag;
caller();
}

如果没有 flag 是可以的,并且应该抢占 callee() 的执行,则应该在 callee() 中处理它> 本身。

public void callee() {
if (flag == null) return;
// do stuff involving the dependentVariable...
}

这是因为,随着代码库的增长,您将无法在调用 callee() 之前检查 flag 是否在所有地方都被 null 检查。这也符合DRY原则。

关于java - 在方法之前或内部检查因变量的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28631035/

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