Valor vazio como parâmetro de retorno

Eu tenho essa interface:

public interface Command<T> {
    T execute(String... args);
}

funciona bem para a maioria dos usos. Mas quando tento modelar um comando que tenha apenas efeitos colaterais (por exemplo, sem valor de retorno), sou tentado a escrever:

public class SideEffectCommand implements Command<Void> {

    @Override
    public Void execute(String... args) {
        return null; // null is fine?
    }
} 

Isso é um problema comum? Existem melhores práticas para modelarCommands come sem valor de retorno?

Eu tentei com este adaptador, mas acho que isso não é ideal por vários motivos:

public abstract class VoidCommand implements Command<Void> {

    @Override
    public Void execute(String... args) {
       execute2(args);
       return null;
    }

    public abstract void execute2(String... args);
}

questionAnswers(8)

yourAnswerToTheQuestion