İlk - Sana özyinelemeli ek açıklamalar ile ne demek emin değilim. Aynı türdeki diğer ek açıklamalar başvurular içerebilir ek açıklamaları ifade ediyor mu? (Bunun mümkün olsaydı kullanmak istedikleri yerleri bir örnek olur ...)
@Panel(layout=BorderLayout.class,
nested={
@Panel(region=NORTH, layout=FlowLayout.class, ...)
@Panel(region=SOUTH, layout=FlowLayout.class, ...)
}
)
gibi bir şey özel ek açıklamalar (ve işlemciler) benim kullanımı gelince
: kod oluşturma .
http://code.google.com/p/javadude/wiki/Annotations Örneğin
, JavaBean özelliklerine bakın:
@Bean(
properties={
@Property(name="name"),
@Property(name="phone", bound=true),
@Property(name="friend", type=Person.class, kind=PropertyKind.LIST)
}
)
public class Person extends PersonGen {
// generated superclass PersonGen will contain getters/setters
// field definitions, property change support...
}
veya bir karışımı-örneğin
package sample;
import java.util.List;
public interface IFlightAgent {
List<IFlight> getFlight();
void reserve(IFlight flight);
}
public interface ICarAgent {
List<ICar> getCars();
void reserve(ICar car);
}
public interface IHotelAgent {
List<IHotel> getHotels();
void reserve(IHotel hotel);
}
package sample;
import com.javadude.annotation.Bean;
import com.javadude.annotation.Delegate;
@Bean(delegates = {
@Delegate(type = IHotelAgent.class,
property = "hotelAgent",
instantiateAs = HotelAgentImpl.class),
@Delegate(type = ICarAgent.class,
property = "carAgent",
instantiateAs = CarAgentImpl.class),
@Delegate(type = IFlightAgent.class,
property = "flightAgent",
instantiateAs = FlightAgentImpl.class)
}
)
public class TravelAgent extends TravelAgentGen
implements IHotelAgent, ICarAgent, IFlightAgent
{
// generated superclass TravelAgentGen will create instances
// of the "instantiateAs" classes and delegate the interface
// methods to them
}
onların kullanımı ile bazı potansiyel sorunlar için kendisine The drawbacks of annotation processing in Java? ve benim cevap bakınız . Java Web Hizmetleri davranışını değiştirmek için Oracle Weblogic Server tarafından yoğun kullanılan olarak
Ben özyinelemeli ek açıklamalar, hem de onlar için bir kullanım örneği görme ilgi duyarım. Sorunuzu doldurmak için gönderebileceğiniz referanslarınız var mı? –
Hayır, şu anda böyle bir referansım yok. Ama size şunu söyleyebilirim: İşlevsel bir dil derleyicisi java kodu yayar ve kod, derleyici toplanan bazı yararlı bilgilerle (tür, katılık vb.) Açıklanır. Tabii ki, @Type için ek açıklama özyineli. – Ingo