如何在wsimport创建的类中设置多个实例变量?

时间:2013-11-06 19:13:40

标签: java jax-ws

我正在编写一个基于SOAP的客户端,它将更新数据库中的字段。 java wsimport实用程序创建的类之一包含表的表示形式,该表中的每个字段都是受保护的实例变量。例如:

public class CustomObject1Data {

@XmlElement(name = "ModifiedDate")
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar modifiedDate;
@XmlElement(name = "CreatedDate")
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar createdDate;
@XmlElement(name = "ModifiedById")
protected String modifiedById;
@XmlElement(name = "CreatedById")
protected String createdById;
@XmlElement(name = "ModId")
protected Integer modId;
@XmlElement(name = "Id")
protected String id;
@XmlElement(name = "CustomInteger5")
protected Integer customInteger5;
@XmlElement(name = "CustomInteger6")
protected Integer customInteger6;
.... 100+ more

用户界面将具有这些字段的友好名称。他们熟悉的名称,因为它们是数据库中该记录的字段名称。在幕后,UI将UI字段名称映射到XML名称。如果用户界面要向我发送这样的查询字符串"CustomInteger5=some new value",我该如何设置此类成员?

@XmlElement(name = "CustomInteger5")   
    protected Integer customInteger5;

我知道我可以有一堆if语句:

if(requestStr.fieldName.equals("CustomInteger5"){   
      setCustomInteger5(rquestStr.value);   
}

...

这将是如此多的工作!如果我将xml名称作为String提供,那么我可以动态设置这些类成员吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

可能有更好的方法来做我想要的,但我能够使用Java反射API完成我需要的工作。如果有人有更好的解决方案,我仍然有兴趣了解它?这是他学习反思的教程。 http://docs.oracle.com/javase/tutorial/reflect/