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
- Por que genéricos superam dynamic
- Classes e métodos genéricos
- Parâmetros de tipo limitados com extends
- Coleções genéricas na prática