Inferieren Ich habe eine benutzerdefinierte Annotation namens CrudSearchable erstellt und dort einige Attribute definiert. Die Attribute, die ich zuweise, sind jedoch bereits von der Bean aus sichtbar. Gibt es eine Möglichkeit, diese Werte zu erfassen, ohne sie manuell neu definieren zu müssen?Wie Informationen in benutzerdefinierte Annotation mit Java
// Bean
public class MockUser {
@CrudSearchable(attribute = "name",
parentClass = MockUser.class)
private String name;
@CrudSearchable(attribute = "group",
parentClass = MockUser.class,
mappedClass = MockGroup.class)
private MockGroup group;
// Get/Set, Equals/Hashcode, etc...
}
// Annotation Class
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface CrudSearchable {
String attribute();
boolean searchable() default true;
Class<?> mappedClass() default CrudSearchable.class;
Class<?> parentClass() default Object.class;
}
Wo Attribut der Attributname ist, ist Parent die Klasse wörtliche die Anmerkung verwenden, und kartiert Klasse ist das verschachtelte Klasse-Objekt, wenn applicatable.
Vielen Dank für Ihren Beitrag, aber ich bin bereits in der Lage, auf die Elemente zuzugreifen, sobald ich die Werte fest codiere, aber wenn Sie in der Bohne sehen, bin ich die Informationen aus der Klasse. Ich möchte das aus der Annotation holen. e. g @CrudSearchable (Attribut = "Name", ParentClass = MockUser.class) String-Name; sollte mit @CrudSearchable String name ersetzt werden; und ich schließe den Attributnamen und die Klasse aus dem Annotationscode ab. Ist das möglich? – jDub9