YAML

★記法

・!!クラス名でオブジェクトとの対応

例:!!xxx.Book

・変数名、コロン(:)、スペース、値

例:name: Andy

・タブは使わない

!!xxx.Book

title: test

price: 2000

author: !!xxx.Author

firstName: Andy

lastName: Liu

★SankeYaml

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

Book book = (Book) new Yaml().load(getClass().getResourceAsStream("book.yaml"));

★YAMLと比較

Javaによる一般的記法

Book book = new Book();

book.setTitle("test");

book.setPrice(2000);

Author author = new Author();

author.setFirstName("Andy");

author.setLastName("Liu");

book.setAuthor(author);

return book;

Javaによる宣言的記法

return new Book() {

{

title = "test";

price = 2000;

author = new Author() {

{

firstName = "Andy";

lastName = "Liu";

}

};

}

};

Groovyによる宣言的記法

new Book(

title: "test",

price: 2000,

author: new Author(

firstName: "Andy",

lastName: "Liu",

),

)