相关疑难解决方法(0)

Java/JAXB:根据属性将Xml解组为特定的子类

是否可以使用JAXB根据xml的属性将xml解组为特定的Java类?

<shapes>
  <shape type="square" points="4" square-specific-attribute="foo" />
  <shape type="triangle" points="3" triangle-specific-attribute="bar" />
</shapes>
Run Code Online (Sandbox Code Playgroud)

我想有一个包含三角形和正方形的Shape对象列表,每个对象都有自己的特定于形状的属性.IE:

abstract class Shape {
    int points;
    //...etc
}

class Square extends Shape {
    String square-specific-attribute;
    //...etc
}

class Triangle extends Shape {
    String triangle-specific-attribute;
    //...etc
}
Run Code Online (Sandbox Code Playgroud)

我目前只是将所有属性放在一个大的"Shape"类中,并且它不太理想.

如果形状被恰当地命名为xml元素,我可以让它工作,但不幸的是我无法控制我正在检索的xml.

谢谢!

java inheritance jaxb eclipselink

29
推荐指数
2
解决办法
2万
查看次数

Java/JAXB:将XML属性解组为特定的Java对象属性

有一个丑陋的XML文件必须是unmarshalled:

<?xml version="1.0" ?>
<configuration>
    <section name="default_options">
        <value name="default_port">8081</value>
        <value name="log_level">WARNING</value>
    </section>
    <section name="custom_options">
        <value name="memory">64M</value>
        <value name="compatibility">yes</value>
    </section>
</configuration>
Run Code Online (Sandbox Code Playgroud)

生成的Java对象应该是:

public class DefaultOptions {
    private int defaultPort;
    private String logLevel;
    // etc...
}

public class CustomOptions {
    private String memory;
    private String compatibility;
    // etc...
}
Run Code Online (Sandbox Code Playgroud)

这个问题的答案非常接近,但我无法弄清楚最终的解决方案.

java xml jaxb

19
推荐指数
2
解决办法
3万
查看次数

标签 统计

java ×2

jaxb ×2

eclipselink ×1

inheritance ×1

xml ×1