As interfaces são um substituto válido para as classes de utilitários no Java 8? [duplicado]

Esta pergunta já tem uma resposta aqui:

Java 8: Interface com métodos estáticos em vez da classe util estática 4 respostas

Nos últimos dez anos, tenho usado o padrão abaixo para minhas classes de utilitários Java. A classe contém apenas métodos e campos estáticos, é declaradafinal portanto, não pode ser estendido e tem umprivate construtor para que não possa ser instanciado.

public final class SomeUtilityClass {
    public static final String SOME_CONSTANT = "Some constant";

    private SomeUtilityClass() {}

    public static Object someUtilityMethod(Object someParameter) {
        /* ... */

        return null;
    }
}

Agora, com a introdução demétodos estáticos em interfaces Ultimamente, no Java 8, me vejo usando um padrão de interface de utilitário:

public interface SomeUtilityInterface {
    String SOME_CONSTANT = "Some constant";

    static Object someUtilityMethod(Object someParameter) {
        /* ... */

        return null;
    }
}

Isso permite que eu me livre do construtor e de muitas palavras-chave (public, static, final) implícitos nas interfaces.

Há alguma desvantagem nessa abordagem? Existem benefícios em usar uma classe de utilitário em uma interface de utilitário?

questionAnswers(4)

yourAnswerToTheQuestion