2

私はpojoでxmlを生成することを知っています私はこのようなことをすることができます、

    class Person(name : String, age : Int){
        def toXml() = <person><name>{ name }</name><age>{ age }</age></person>;
    }

問題は、name = nullの場合、私は

    <person><name></name><age>8</age></person>

本当に、値がnullのときにノードを一時的にしたいとき

    <person><age>8</age></person>

これを達成するためのクリーンな方法はありますか?ありがとう。

4

2 に答える 2

0

名前がnullになる可能性がある場合、別の(より機能的な?)アプローチはオプションを使用することです。

class Person(name : Option[String], age : Int){
  def toXml() = <person>{name map {x=> <name>{x}</name>} getOrElse(<name/>)} <age>{ age }</age></person>;
}

冗長性を減らすことができると確信していますが、その利点は、名前をオプションとして指定すると、タイプチェッカーがそれを処理するように強制することです。プレーンな文字列では、nullチェックを自分で覚えておく必要があります。

于 2011-12-03T21:23:07.570 に答える