当代码需要包含JUnit作为依赖项,例如在Maven测试范围内<scope>test</scope>
中时,直接使用Assertion.fail()
方法,可以显著提高代码的清晰度。
public final class UtilityClass {
private UtilityClass() {
fail("The UtilityClass methods should be accessed statically");
}
}
当超出测试范围时,您可以使用以下内容,这需要静态导入才能像上面那样使用。import static pkg.Error.fail;
注:此处的“测试范围”可能指的是程序测试的某个特定阶段或环节。
public class Error {
private static final Logger LOG = LoggerFactory.getLogger(Error.class);
public static void fail(final String message) {
LOG.error(message);
throw new AssertionError(message);
}
}
以下是使用方法。
public class UtilityClassTwo {
private UtilityClassTwo() {
Error.fail("The UtilityClass methods should be accessed statically");
}
}
在最常用的形式中,它们都归结为以下内容:
public class UtilityClassThree {
private UtilityClassThree() {
assert false : "The UtilityClass methods should be accessed statically";
}
}
UnsupportedOperationException是内置的异常之一,可以被抛出来表示“不支持所请求的操作”。
private Constructor() {
throw new UnsupportedOperationException(
"Do not instantiate this class, use statically.");
}
AssertionError
,还是应该使用assert false
语句。 - Maarten Bodewes