0Pricing
Dart Academy · Aula

Classes e métodos genéricos

Parametrize seus próprios tipos.

Classes e métodos genéricos é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Dart Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Dart Academy inclui 4 aulas no total.

Seus próprios genéricos

Tipos integrados como List são genéricos, e o senhor também pode escrever os seus. Um parâmetro de tipo permite que sua classe se adapte a qualquer tipo escolhido por quem a chama. 🧩

Dando nome ao parâmetro de tipo

O senhor adiciona um parâmetro de tipo entre sinais de menor e maior depois do nome da classe. A letra T é um marcador comum que representa um tipo real.

class Box<T> {
  T value;
  Box(this.value);
}

Usando T internamente

Dentro da classe, T se comporta como qualquer nome de tipo. O senhor pode usá-lo em campos, parâmetros e valores de retorno em todo o corpo da classe.

class Box<T> {
  T value;
  Box(this.value);
  T get() => value;
}

Preenchendo o tipo

Ao criar o objeto, o senhor escolhe o tipo real. Aqui, T se torna int, portanto esta caixa armazenará somente números inteiros.

var b = Box<int>(42);
int n = b.get();

Deixe o Dart inferir o tipo

Muitas vezes, o senhor pode omitir o tipo explícito porque o Dart o identifica pelo argumento. A inferência encontra uma String e define T para o senhor.

var b = Box('hi');

Vários parâmetros de tipo

Uma classe pode receber mais de um parâmetro de tipo, separados por vírgulas. Um par que armazena dois tipos diferentes é um exemplo clássico.

class Pair<A, B> {
  A first;
  B second;
  Pair(this.first, this.second);
}

Métodos genéricos

O senhor também pode tornar um único método genérico, mesmo em uma classe não genérica. Coloque o parâmetro de tipo imediatamente antes da lista de parâmetros.

T firstOf<T>(List<T> items) => items[0];

Os métodos também inferem tipos

Um método genérico geralmente infere seu tipo a partir dos argumentos que o senhor passa. Chame-o normalmente e o Dart descobrirá o restante.

var n = firstOf([1, 2, 3]);
var s = firstOf(['a', 'b']);

A segurança de tipos retorna

Como o método acompanha T, o resultado mantém o tipo correto. firstOf em uma lista de String fornece uma String, sem necessidade de conversão.

String x = firstOf(['a', 'b']);

Reutilizável, não repetitivo

Uma definição genérica substitui muitas versões copiadas e coladas. O senhor escreve a lógica uma vez, e ela funciona igualmente para int, String e qualquer tipo personalizado.

Escolha nomes claros

Letras únicas como T, E ou K são convencionais, mas um nome descritivo pode ajudar. Em códigos complexos, a clareza é mais importante que a brevidade.

Verificação rápida

Onde fica um parâmetro de tipo em uma classe?

Recapitulação

O senhor aprendeu a adicionar um parâmetro de tipo, como T, às suas próprias classes e métodos. O Dart o preenche, muitas vezes por inferência, mantendo o código reutilizável e seguro. ✅

Perguntas Frequentes

A aula “Classes e métodos genéricos” é grátis?

Sim — o texto completo de “Classes e métodos genéricos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Dart Academy, atualize para CoddyKit PRO. O curso de Dart Academy inclui 4 aulas no total.

O que vou aprender em “Classes e métodos genéricos”?

Parametrize seus próprios tipos. Você pratica Dart Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Dart Academy?

Nenhuma experiência prévia é necessária. Dart Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Classes e métodos genéricos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Dart Academy?

Sim. Cada aula de Dart Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Por que genéricos superam dynamic
  2. Classes e métodos genéricos
  3. Parâmetros de tipo limitados com extends
  4. Coleções genéricas na prática
← Voltar para Dart Academy