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

  • discokatze

    discokatze

    23 EYLÜL 2009
  • Press Start

    Press Start

    4 HAZİRAN 2006
  • The Warp Zone

    The Warp Zon

    24 AĞUSTOS 2007