java - 是重载该方法更好,还是使用可变参数传递 0 到 1 个变量? java

标签 java unit-testing automated-tests overloading variadic-functions

我是一名 QA 测试员。我的背景并不是最好地理解 Java 的一些最佳实践。

这是场景。我有一种方法可供多个测试使用。我意识到我只需要在方法中放入一个参数来进行很少的测试。

public static void verifyActivity() {
        CustomViewMatchers.waitForElementToBeEnabled(withId(R.id.(...)), 5);
}

我目前将解决方案作为可变参数放入框架中。

public static void verifyActivity(boolean... buttonDisplay) {
     if (buttonDisplay == null)
        CustomViewMatchers.waitForElementToBeEnabled(withId(R.id.(...)), 5);
}

哪种解决方案是最佳实践?我应该重载该方法,还是继续使用可变参数。

最佳答案

除非您正在开发一个库,否则拥有供将来使用的方法是没有意义的。如果您目前只需要不带参数的方法,则应删除额外的可变参数。

可变参数方法的明显缺点是对参数进行额外的空检查,当然保留未使用的代码会增加维护成本。因此,如果有机会摆脱其中一种方法,就应该使用它。

作为Oracle docs指出:

As an API designer, you should use them sparingly, only when the benefit is truly compelling. Generally speaking, you should not overload a varargs method, or it will be difficult for programmers to figure out which overloading gets called.

关于java - 是重载该方法更好,还是使用可变参数传递 0 到 1 个变量? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59377849/

相关文章:

java - 理解 Java try/catch

java - 模拟随机访问文件

c - 如何捕捉对 exit() 的调用(用于单元测试)

typescript - 有什么方法可以使用 jest-puppeteer 对片状测试进行重试?

java - 错误信息找不到符号?

java - 接受任何名称作为 XML 元素 - JAXB、CXF

C# 调用 java.exe 并从 cmd 获取结果错误

android - 使用 Firebase 在 Android 上进行单元测试

python - 是否可以通过 python 引用来调用 C 函数?

java - 有什么好的框架可以自动测试 AWT GUI 吗?