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
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
Konumlandırma birden fazla işaret aynı...
Aynı PC üzerinde birden fazla Firefox ...
Nasıl aynı yazı tipi için yazı tipi bi...
Eclipse, görünümleri aynı anda birden ...
En iyi yolu, bir istemci üzerinde bird...