0
<student>
<id>1</id>
<badge></badge>
<name>Matt</name>
</student>

これは、投稿中に観察したときの私のxml投稿です。

public class Student implements Serializable{

Long id;
Integer badge;
String name;
}

マイ Web サービス :

    @Path("add")
    @POST
    @Consumes({Mediatype.xml,Mediatype.json})
    @Produces({Mediatype.xml,Mediatype.json})
    public Response add(Student student)
    {
    }

サービス レイヤーでこの add メソッドをデバッグすると、GUI によって提供されていないにもかかわらず、変数 Badge に値「0」が割り当てられます。バッジのデータベース フィールドも整数 (postgres) です。

存在しない場合はデフォルト値を0に割り当てる整数変数に関連するものですか?

4

1 に答える 1

0

Integerは参照型です。参照型の変数を持つクラスのインスタンスを作成する場合、そのデフォルト値はnullです。したがって、あなたが見ている動作は Java のものではありません。

Jersey は JAXB を使用してエンティティをマーシャリングおよびアンマーシャリングします。空のテキスト要素を持つbadgeフィールドがあることがわかると、設定する適切な値を決定する必要があります。nullそこに要素があるので、それを与える意味はありません。したがって、それを に初期化することにし0ます。

于 2013-07-25T13:52:36.267 に答える