このようなフィールドを持つクラスがあります
@XmlElement(name = "Name", namespace = "a:b:c:1", required = true)
protected String firstName
このようにJXPathを使いたい
String name = (String) context.getValue("Name");
ただし、XMLElement name 属性は認識されません。そうする方法はありますか?
ブライアンが提案したように私はこれをしました
Field[] fields = rq.getClass().getDeclaredFields();
Map<String, String> annotationMap = new HashMap<>();
for(Field field:fields)
{
if(field.getAnnotation(XmlElement.class).name().equals("Name"))
{
annotationMap.put("Name", field.getName());
}
}
String name = (String) context.getValue(annotationMap.get("Name"));
System.out.println(name);
しかし、100 個以上のフィールドがある場合、このアプローチは面倒ではないでしょうか? これを行うより良い方法はありますか?