マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

IsSerializableを実装したクラス

GWTはclientパッケージにあるIsSerializableを実装したクラスならサービスメソッドの戻り値や引数にできるとあったので適当に


public class Test implements IsSerializable{
String id;

public Test(String id){
this.id = id;
}

public String getID(){
return id;
}
}

というクラスを作りサービスメソッドインスタンスを作り返そうとしたら実行時にエラー。何が悪いのかいろいろ考えてみたけど、このTestクラスのインスタンスを作るだけならエラーにならなかったので、IsSerializableを実装以外に何かやらないといけないことがあるのか?と思いGWTのDevelopers Forumを検索したら同じようなエラーがでてる人を発見

この人は自己解決したみたいで、解決方法は引数を受け取るコンストラクタを定義しないことらしい。試しにコンストラクタの引数を消してみたらうまくいった。Stringなんかも引数を受け取るコンストラクタがあるのになぜ?と疑問に思うが、できないものはしょうがない。コンストラクタで渡すはずだった引数を普通のメソッドで渡したらエラーは起きずにすんだ。まだIsSerializableのことがよくわからん…