当前位置: 首页 > 知识库问答 >
问题:

JAXB XmlElement注释从String到int的转换

籍兴文
2023-03-14

我通过web服务接收XML,并使用XmlElement注释将XML解析为Java。下面是我如何使用注释。请让我知道我是否正确使用它们。我对int领域特别感兴趣。它似乎起作用了,但我觉得我没有正确地使用注释。我看到了许多类似于@xmlelement(name=“something”type=integer.class)的示例。XmlJavaTypeAdapter注释中是否也建议使用此类型属性?我为这么长的问题表道歉,这是我第一次使用XmlElement注释,我想确保我做得正确。事先谢谢你的任何帮助。

@XmlRootElement(name="Person")
public class Person {
    @XmlElement(name="FirstName")
    public String firstName = "";

    @XmlElement(name="LastName")
    public String lastName="";

    @XmlElement(name="Age")
    public int age = 0;

    @XmlElement(name="BirthDate")
    @XmlJavaTypeAdapter(DateAdapter.class)
    public Date birthDate = new Date(0);
}


public class DateAdapter extends XmlAdapter<String, Date> {
    private static final DateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd");

    @Override
    public String marshal(Date date) throws Exception {
        return (date == null) ? "" : FORMAT.format(date);
    }

    @Override
    public Date unmarshal(String str) throws Exception {
        return FORMAT.parse(str);
    }
}

共有1个答案

阳昊
2023-03-14

依我看你的解决办法是正确的。

但是,如果Age元素可能包含null,则可能需要将int替换为integer(您应该在XSD文件中检查Person元素的定义(如果它是web服务,您可以在wsdl文件中找到XSD))。

 类似资料:
  • 我一直在尝试编译,并玩了一圈的和数,但仍然不能弄清楚错误是什么。有什么想法吗? 标题:

  • 问题内容: 我正在一个项目中,所有从到的转换都是这样完成的: 我对Java不熟悉。我想这是通常的做法还是出了什么问题? 问题答案: 正常的方法是或。 串联可以工作,但是这是非常规的,可能会产生难闻的气味,因为这表明作者不了解上述两种方法(他们可能还不知道什么?)。 当与字符串一起使用时,Java对+运算符有特殊的支持(请参阅文档),它将你发布的代码转换为: 在编译时。它的效率稍低(最终会调用,这反

  • 我有一个HashMap和一个包含键/值的属性文件。属性文件以这种格式存储键/值“4,5=2”我构建了一个从文件加载属性的方法,它将这对“键/值”放入一个HashMap数组(字符串、整数)中。但我的问题是,我希望键的每个元素都存储为int形式,以便将它们用作另一个方法的参数。键存储为字符串。如有任何帮助,我们将不胜感激。谢谢你!

  • 我在pandas中有一个数据帧,它混合了int和str数据列。我想先连接dataframe中的列。为此,我必须将列转换为。我试着做了如下工作: 或 但在这两种情况下,它都不起作用,我得到一个错误,说“不能连接'str'和'int'对象”。将两个列串联在一起可以很好地工作。

  • 之前,我已经实施了此功能,并且它起到了作用: 我甚至可以用下面的东西检查我是否得到了正确的尺寸,一切都很好。 但是,在使用以下初始化尝试整个程序时,我得到了一个编译错误: 以下是错误消息: rbm. cpp:在函数“ululemexFunction(int, mxArray**, int, const mxArray**)”中:rbm. cpp: 570:64: error:从“int”到“int

  • 我想创建一个简单的3x3矩阵类,并能够通过下标操作符访问其内容。代码如下: 我希望能够访问数组的元素,无论矩阵的对象是常量还是非常量。但我从编译器中得到以下错误: 错误:从“const int*”到“int*”的转换无效[-fpermissive] 我做了一些研究,我有一个假设:也许,因为我已经将这个成员函数声明为const函数,在它的定义中,编译器将对象的所有不可变成员视为const成员(它掩盖