Método valueOf em Strings - Erro ao executar

Eu tenho o seguinte código que dá erro:

GregorianCalendar datInicioVigencia = new GregorianCalendar Integer.valueOf(request.getDataInicioVigencia().substring(0,2),request.getDataInicioVigencia().substring(3,5),request.getDataInicioVigencia().substring(6,10));

ou seja, para ano, mes e dia.

eu sei que eu deveria converter, por isso usei o Interger.valueOf…
mas dá erro.
o que estou fazendo de errado?

Tem vários parênteses faltando, esse código nem compila.

Se a ideia é passar 3 números, então teria que ter 3 conversões para inteiro. Além disso (chute meu, pois sem saber qual é a string retornada por getDataInicioVigencia(), só mesmo tentando adivinhar) parece que vc está passando dia, mês e ano para o construtor de GregorianCalendar.

Mas se vc olhar a documentação, vai ver que a ordem correta é ano, mês e dia. Além disso, o mês é indexado em zero (janeiro é zero, fevereiro é 1, etc), então teria que ser assim:

// assumindo que getDataInicioVigencia retorna uma string no formato dd/mm/aaaa
GregorianCalendar datInicioVigencia = new GregorianCalendar(
    Integer.valueOf(request.getDataInicioVigencia().substring(6, 10)), // ano
    Integer.valueOf(request.getDataInicioVigencia().substring(3, 5)) - 1, // mês, tem que subtrair 1 porque janeiro é zero
    Integer.valueOf(request.getDataInicioVigencia().substring(0, 2)) // dia
);

Mas pra que complicar? Se a string está em determinado formato, use SimpleDateFormat:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
    GregorianCalendar datInicioVigencia = new GregorianCalendar();
    datInicioVigencia.setTime(sdf.parse(request.getDataInicioVigencia()));
    // usa datInicioVigencia aqui
} catch (ParseException ex) {
    // erro (data em formato inválido, etc)
}

Mas pra que complicar (parte 2)? Se estiver usando Java >= 8, esqueça a API legada e use as classes do pacote java.time.

No caso, poderia usar um java.time.LocalDate (mas também é possível converter para GregorianCalendar, caso precise muito mesmo):

DateTimeFormatter parser = DateTimeFormatter.ofPattern("dd/MM/uuuu");
LocalDate dataInicioVigencia = LocalDate.parse(request.getDataInicioVigencia(), parser);

// mas se quiser muito converter para GregorianCalendar
GregorianCalendar cal = GregorianCalendar.from(dataInicioVigencia.atStartOfDay(ZoneId.systemDefault()));
3 curtidas