2013-07-31 3 views
3

У меня есть @XMLElement, что имеет тип характера, но когда он получает выстроил он появляется, чтобы поместить в двоичную строку так, например ...Использование JAXB с характером

'n' becomes 110 
'e' becomes 101 

Короткие преобразования их в строки есть способ, которым я могу выводить текст char вместо представления?

ответ

4

Вы можете написать XmlAdapter. Объект XmlAdapter позволяет конвертировать один тип объекта в другой для целей маршаллинга/разборки.

XMLAdapter (CharacterAdapter)

import javax.xml.bind.annotation.adapters.XmlAdapter; 

public class CharacterAdapter extends XmlAdapter<String, Character> { 

    @Override 
    public Character unmarshal(String v) throws Exception { 
     return v.charAt(0); 
    } 

    @Override 
    public String marshal(Character v) throws Exception { 
     return new String(new char[] {v}); 
    } 

} 

Java Модель

В XmlAdapter задается с помощью @XmlJavaTypeAdapter аннотацию:

import javax.xml.bind.annotation.*; 
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; 

@XmlRootElement 
public class Foo { 

    private Character bar; 

    @XmlJavaTypeAdapter(CharacterAdapter.class) 
    public Character getBar() { 
     return bar; 
    } 

    public void setBar(Character bar) { 
     this.bar = bar; 
    } 

} 

Для получения более подробной информации

+1

Спасибо Я постараюсь это – Jackie

Смежные вопросы