Aproveitei esse tópico da aula pra criar um Builder e gostaria de saber como posso restringir para que um dos atributos possam ser usados apenas uma única vez na construção. Abaixo o código
package br.com.alura;
public class EstudanteBuilder {
    private Estudante estudante;
    public EstudanteBuilder() {
        this.estudante = new Estudante();
    }
    public static EstudanteBuilder builder() {
        return new EstudanteBuilder();
    }
    public EstudanteBuilder comNome(String nome) {
        this.estudante.setNome(nome);
        return this;
    }
    public EstudanteBuilder comCPF(String numeroCPF) {
        this.estudante.setCpf(new CPF(numeroCPF));
        return this;
    }
    public EstudanteBuilder comEmail(String email) {
        this.estudante.setEmail(new Email(email));
        return this;
    }
    public EstudanteBuilder comTelefone(String ddd, String numero) {
        this.estudante.adicionarTelefone(ddd, numero);
        return this;
    }
    public Estudante build() {
        return this.estudante;
    }
    public static void main(String[] args) {
        var estudante = EstudanteBuilder.builder()
                .comNome("Andreia") // exemplo
                .comNome("Andreia") // exemplo
                .comCPF("888.888.888-38")
                .comEmail("email@email.com")
                .comTelefone("22", "000000000")
                .build();
        System.out.println(estudante);
    }
}