Unmarshal web.xml jako obiekt Java.

0

Posiadam następujący xml: https://www.nbp.pl/kursy/xml/LastA.xml, potrzebuję stworzyć jakąś kolekcję obiektów typu Waluta, problem w tym, że nigdy tego nie robiłem i nie mam pojęcia jak się za to zabrać.

Klasa Currency:

public class Currency {
    private String currencyName;
    private float multiplicand;
    private String code;
    private float rate;

    public Currency(String code, String currencyName, float rate, float multiplicand) {
        this.code = code;
        this.currencyName = currencyName;
        this.rate = rate;
        this.multiplicand = multiplicand;
    }

    public String getCurrencyName() {
        return currencyName;
    }

    public String getCode() {
        return code;
    }

    public float getMultiplicand() {
        return multiplicand;
    }

    public float getRate() {
        return rate;
    }

    public void setMultiplicand(float multiplicand) {
        this.multiplicand = multiplicand;
    }

    public void setRate(float rate) {
        this.rate = rate;
    }
}

Chcę stworzyć właśnie taką klasę CurrRepository, ale nie mam zielonego pojęcia jak się to robi.

public class CurrRepository {

    private Map<String,Currency> currencies;

    public CurrRepository() {
       /*wrzucanie walut do mapy - tylko jak?*/
    }

    public Currency getCurrencyByCode(String code){
        return currencies.get(code);
    }

    public Map<String,Currency> getAllCurrencies(){
        return currencies;
    }

}
0

Nie dodawaj obiektów typu Waluta w konstruktorze, zrób oddzielną metodę do tego, moim zdaniem w konstruktorze co najwyżej zrób init mapy.

0

Tak zrobię, tylko tak zunmarshalować tego xmla :)?

2

Możesz użyć JAXB. Tutaj masz prosty przykład jak się za to zabrać:
http://www.mkyong.com/java/jaxb-hello-world-example/
generalnie fajnie, to wygląda, bo dajesz adnotacje i kod jest krótki i czytelny.

0

Wyskakują mi następujące błędy:

Error:(3, 17) java: package javax.xml.bind is not visible
(package javax.xml.bind is declared in module java.xml.bind, which is not in the module graph)

ktoś wie dlaczego?

1 użytkowników online, w tym zalogowanych: 0, gości: 1