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

  • kremosakhaz

    kremosakhaz

    25 AĞUSTOS 2006
  • multimediaGEEKS LLC

    multimediaGE

    3 Mayıs 2010
  • Showtime

    Showtime

    21 HAZİRAN 2006