当代码需要包含 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);
// or use your preferred exception
// e.g InstantiationException
}
}
其中以下用法。
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.");
}