Questão nº 41

Questão de Tecnologia da Informação · FCC TRT24 2016 (nº 41)

FCC2016Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Aver comentário ↓

Considere os seguintes comandos da linguagem Groovy para criar um array chamado `tribunais`:

I. `String[] tribunais = ["TRT", "TRE", "TCU"]`

II. `def tribunais = ["TRT", "TRE", "TCU"] as String[]`

III. `def tribunais = (String[]) ["TRT", "TRE", "TCU"]`

IV. `def tribunais = ["TRT", "TRE", "TCU"] .toString(new Array())`

Estão corretas as formas utilizadas APENAS em

Resposta comentada

Gabarito Alternativa A

Em Groovy, um array é uma coleção de itens do mesmo tipo e com tamanho fixo, similar ao Java. Existem várias maneiras flexíveis de declará-los, aproveitando a tipagem dinâmica e a coerção de tipos da linguagem.

  • (A) Correta: Esta é a alternativa correta, pois as formas I, II e III são métodos válidos para criar um array de Strings em Groovy.
    • I. Correta: String[] tribunais = ["TRT", "TRE", "TCU"]
      Esta é uma declaração de array explícita, similar ao Java. O literal de lista Groovy ["TRT", "TRE", "TCU"] é automaticamente convertido para um String[] porque o tipo da variável tribunais foi declarado como String[].
    • II. Correta: def tribunais = ["TRT", "TRE", "TCU"] as String[]
      Aqui, def permite a inferência de tipo. O operador as realiza uma coerção de tipo, convertendo a java.util.ArrayList (que é o tipo padrão de um literal de lista Groovy) para um String[]. Esta é uma forma idiomática e comum de criar arrays em Groovy.
    • III. Correta: def tribunais = (String[]) ["TRT", "TRE", "TCU"]
      Similar à forma II, mas usando um cast de tipo estilo Java (String[]). O literal de lista é explicitamente convertido para um String[]. Groovy é capaz de realizar essa conversão de uma lista de Strings para um array de Strings.
  • (B) Incorreta: A alternativa IV está incorreta.
  • (C) Incorreta: A alternativa II também está correta.
  • (D) Incorreta: A alternativa IV está incorreta.
  • (E) Incorreta: A alternativa IV está incorreta, e a alternativa II também está correta.
    • IV. Incorreta: def tribunais = ["TRT", "TRE", "TCU"] .toString(new Array())
      Esta forma está incorreta por vários motivos. Primeiro, o método .toString() em um java.util.ArrayList (que é o tipo de ["TRT", "TRE", "TCU"]) não aceita argumentos. Segundo, mesmo que aceitasse, new Array() não é uma sintaxe válida para criar uma instância de array em Groovy/Java. O objetivo do .toString() é obter a representação em String de um objeto, não criar um array. Armadilha da banca: A menção de Array() e toString() pode induzir ao erro, mas toString() não cria um array, e a sintaxe new Array() é inválida.

Fonte: FCC TRT24 2016 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho