CodeBlanks Logo Icon CodeBlanks

Özet - Metadata

annotation, @override ve reflection'ı birleştirerek bir annotation işleyici yazarsın.

Özet: Metadata

Bu grupta annotation'ları, @override ve @deprecated etiketlerini, özel annotation yazmayı ve dart:mirrors ile reflection'ı gördün. Annotation'lar koda üst veri katar; @override yanlış geçersiz kılmayı yakalar.

Şimdi bunları birleştireceğiz: özel bir annotation tanımlayıp bir metoda uygulayacağız. Bu, annotation'ların nasıl etiket taşıdığını gösterir.

Hatırla: annotation const constructor'lı bir sınıftır; @override önerilir; @deprecated uyarı verir.

Uygulama Review annotation

Bir Review annotation sınıfı tanımla: final String note alanı ve const Review(this.note) constructor'ı olsun. Bir Report sınıfı yaz; içinde @Review('önemli') void generate() { print('üretildi'); } metodu olsun. main içinde Report().generate() çağır.

Başlangıç kodu

main.dart
// Review annotation sınıfını tanımla (note, const constructor)
// Report sınıfını ve generate metodunu tanımla

void main() {
  // generate metodunu çağır
}

Örnek çözüm

main.dart
class Review {
  final String note;
  const Review(this.note);
}

class Report {
  @Review('önemli')
  void generate() {
    print('üretildi');
  }
}

void main() {
  Report().generate();
}

Beklenen çıktı

üretildi

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Kavram eşleştirmesi

Kavram Anlamı
@override Geçersiz kılma
@deprecated Eskimiş işaret
class Todo Özel annotation
dart:mirrors Reflection

2 Özel annotation neyden oluşur?

  • Bir enum'dan
  • Bir Future'dan
  • const constructor'lı bir sınıftan Doğru cevap
  • Bir abstract metoddan

Açıklama: özel annotation const constructor'lı bir sınıftır.

3 Annotation uygulama

Soru
@____('önemli')
void generate() {}
Cevap
@Review('önemli')
void generate() {}

Açıklama: @Review ile annotation uygulanır.

Orta seviye bölümündeki tüm dersler