In Java, you can use annotations to provide additional information about properties (fields) of a class. You can also use reflection to retrieve the values of these properties at runtime.
Here's an example of how to implement an annotation to specify the default value of a property:
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;@Retention(RetentionPolicy.RUNTIME)
public @interface DefaultValue {
String value();
}
In this example, the DefaultValue
annotation has a single element called value
, which is a string representing the default value of a property.
To use this annotation on a property, you can apply it like this:
public class MyClass {
@DefaultValue("default value")
private String myProperty;
// ...
}
In this example, the DefaultValue
annotation is applied to the myProperty
field with the value "default value".
To retrieve the value of this property at runtime using reflection, you can use the Field
class, like this:
Class<?> myClass = MyClass.class;
Field field = myClass.getDeclaredField("myProperty");
DefaultValue annotation = field.getAnnotation(DefaultValue.class);
String defaultValue = annotation.value();
In this code, the getDeclaredField()
method is used to retrieve the myProperty
field from the MyClass
class, and then the getAnnotation()
method is used to retrieve the DefaultValue
annotation. Finally, the value()
method is used to get the value of the annotation.
If the DefaultValue
annotation is not present on the field, or if the value()
method returns an empty string, you can assume that the property has no default value.
Note that this is just one example of how to use annotations and reflection in Java. There are many other ways to use annotations and retrieve their values at runtime.