为了使这更简单,我为默认值创建了一个注释,并创建了一个注释处理器,该处理器生成一个具有重载方法的超类。例如:
protected void process(
Processor processor,
String item,
@Default("Processor.Size.LARGE") Size size,
@Default("red") String color,
@Default("1") int quantity) {
...
}
生成(在生成的超类中)
protected void process(sample.Processor processor, java.lang.String item) {
process(processor, item, Processor.Size.LARGE, "red", 1);
}
protected void process(sample.Processor processor,
java.lang.String item,
sample.Processor.Size size) {
process(processor, item, size, "red", 1);
}
protected void process(sample.Processor processor,
java.lang.String item,
sample.Processor.Size size,
java.lang.String color) {
process(processor, item, size, color, 1);
}
protected abstract void process(sample.Processor processor,
java.lang.String item,
sample.Processor.Size size,
java.lang.String color,
int quantity) ;
请参阅http://code.google.com/p/javadude/wiki/Annotations
-- Scott