Когда код требует включения 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.");
}