|
AnnotationsDefaultParametersExample
JavaDude Tools->Annotations->Annotations examples Default Parameters ExampleC++-like default parameter values are now easy to implement in Java! package sample;
import sample.Processor.Size;
import com.javadude.annotation.Bean;
import com.javadude.annotation.Default;
@Bean
public class DefaultParameterExample extends DefaultParameterExampleGen {
protected void process(Processor processor,
String item,
@Default("Processor.Size.LARGE") Size size,
@Default("red") String color,
@Default("1") int quantity) {
processor.process(item, size, color, quantity);
}
public void report(@Default("Hello") String message) {
System.out.println("Message: " + message);
}
public static void main(String[] args) {
DefaultParameterExample e = new DefaultParameterExample();
e.report();
e.report("Goodbye");
Processor processor = new DefaultProcessor();
e.process(processor, "shirt", Size.SMALL, "blue", 2);
e.process(processor, "shirt", Size.SMALL, "blue");
e.process(processor, "shirt", Size.SMALL);
e.process(processor, "shirt");
}
}will generate the following (note: I have reformatted the parameters; they would normally be generated on a single line) // CODE GENERATED BY JAVADUDE BEAN ANNOTATION PROCESSOR
// -- DO NOT EDIT - THIS CODE WILL BE REGENERATED! --
package sample;
@javax.annotation.Generated(
value = "com.javadude.annotation.processors.BeanAnnotationProcessor",
date = "Mon Aug 25 23:31:34 EDT 2008",
comments = "CODE GENERATED BY JAVADUDE BEAN ANNOTATION PROCESSOR; DO NOT EDIT! THIS CODE WILL BE REGENERATED!")
public abstract class DefaultParameterExampleGen {
public DefaultParameterExampleGen() {
;
}
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) ;
public void report() {
report("Hello");
}
public abstract void report(java.lang.String message) ;
@Override
public java.lang.String toString() {
return getClass().getName() + '[' + paramString() + ']';
}
protected java.lang.String paramString() {
return "";
}
}JavaDude Tools->Annotations->Annotations examples |
► Sign in to add a comment