SORU
12 EKİM 2009, PAZARTESİ


Bir öğe üzerinde aynı türden birden fazla işaret?

Bu durumda tek bir öğe üzerinde tokat aynı türden iki veya daha fazla açıklama, bir yöntem bulmaya çalışıyorum. Burada birlikte çalıştığım yaklaşık kodu:

public class Dupe {
    public @interface Foo {
      String bar();
    }

    @Foo(bar="one")
    @Foo(bar="two")
    public void haha() {}
}

Yukarıdaki derleme, javac yinelenen açıklama: bir şikayetçi

max@upsight:~/work/daybreak$ javac Dupe.java 
Dupe.java:5: duplicate annotation

Sadece bu gibi açıklamalar tekrar etmek mümkün değil mi? Pedantically konuşan @içerikleri farklı olduğu için farklı Foo yukarıda iki örneğini değil mi?

Yukarıda mümkün değil ama, bazı Olası çözümler nelerdir?

GÜNCELLEME: kullan benim durumumda tarif etmem istendi. Burada gider.

"Göster" MongoDB gibi belge depoları için POJOs. mekanizması için bir sözdizimi sugarish yapıyorum Dizinler alıcılar veya belirleyiciler üzerine notları olarak belirtilmesi için izin istiyorum. İşte yapmacık bir örnek:

public class Employee {
    private List<Project> projects;

    @Index(expr = "project.client_id")
    @Index(expr = "project.start_date")
    public List<Project> getProjects() { return projects; }
}

Belli ki, hızlı bir şekilde Projenin çeşitli özellikleri ile Çalışan örneklerini bulmak mümkün olmak istiyorum. Ya @iki farklı ifade ile Dizini belirtin() değerleri, ya da bu yaklaşımı kabul cevap olarak belirtilmiş. Uyku yapar ve bir hack sayılmaz rağmen, hala mantıklı en azından tek bir öğe üzerinde aynı türden birden fazla işaret olması izin vermek için yapar bence.

CEVAP
12 EKİM 2009, PAZARTESİ


Aynı türden iki veya daha fazla açıklama verilmez. Ancak, böyle bir şey yapabilirsin:

public @interface Foos {
    Foo[] value();
}

@Foos({@Foo(bar="one"), @Foo(bar="two")})
public void haha() {}

Kod Foos açıklama işleme rağmen ayrılmış gerekir.

btw, sadece bu 2 saat önce aynı sorun:) geçici bir çözüm bulmak için kullandım

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AFISHAL

    AFISHAL

    7 Mart 2009
  • AutoHotkey Tutorials

    AutoHotkey T

    29 Mayıs 2010
  • Michelle Phan

    Michelle Pha

    18 Temmuz 2006