Файл Yaml с конструктором и настройками атрибутов не работает

Я хотел бы создать некоторые java-объекты с моим Yaml-файлом. Вот исходный код:

package foo;

public class Sample {

    private String name;
    private String description;

    private Integer value;

    public Sample(String name, String description) {
        this.name = name;
        this.description = description;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getValue() {
        return value;
    }

    public void setValue(Integer value) {
        this.value = value;
    }
}

Очень простой класс Java. Вот файл Yaml:

mySample: !!foo.Sample [ 'Name', 'Description' ]
  value: 123

Исключение составляет:

while parsing a block mapping
 in 'string', line 4, column 1:
    mySample: !!foo.Sample [ 'Name', ... 

Но если я удалю настройку «значение», это сработает. Разве нельзя создать объект с другим конструктором по умолчанию и после этого установить некоторые атрибуты члена?

Это работает отлично, но без значения для «значения»:

mySample: !!foo.Sample [ 'Name', 'Description' ]

person Rookee    schedule 24.02.2014    source источник


Ответы (1)


Я думаю, что вы ищете CompactObjectNotation, функцию в SnakeYAML, которая не входит в спецификацию.

https://code.google.com/p/snakeyaml/wiki/CompactObjectNotation

person spirulence    schedule 22.01.2015