タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

シリアライズに関するj5ik2oのブックマーク (5)

  • 次期 S2Wicket 仕様断念の原因となった動的オブジェクトの循環参照問題をおいらもみんなのために解いたった!? - 日記

    少し前に S2Wicket のコミッタ,よういちろうさんのところであった話題. 新S2Wicket仕様,断念 この問題を id:t_yano さんが 次期S2Wicket仕様断念の原因となった動的オブジェクトの循環参照問題をぼくがみんなのために解いたった! だそうな.お見事. 自分は元ネタの方にもコメントしてるように,これを (よういちろうさんが呼ぶところの) 動的プロキシで実現するのが適当なのか,未だに疑問を持ってます. もし自分が S2Wicket のコミッタだったら,ここで動的にクラスを生成するかは微妙. あらかじめ (静的に) サブクラスを用意しておくことを選択するかも. 数が多いとのことだけど,コード生成すれば良いだけだし. とか思ってたのだけど,矢野さんのエントリ見てたらこれはこれでパズル的というか目的とは関係なく面白いかもとか思ったり. そんなわけで (どんなわけで?),矢野

    次期 S2Wicket 仕様断念の原因となった動的オブジェクトの循環参照問題をおいらもみんなのために解いたった!? - 日記
  • 動的プロキシ問題を解決した素晴らしい二人へ

    以前「動的プロキシが循環参照していた際のシリアライズ問題」エントリにおいて僕が解決に至らなかった問題を紹介したが,見事に問題をクリアしたお二方からトラックバックを頂いた。 「 動的プロキシが循環参照していた際のシリアライズ問題」- 矢野勉のはてな日記 「 循環参照問題のよりエレガントな解法」- 矢野勉のはてな日記 「 次期 S2Wicket 仕様断念の原因となった動的オブジェクトの循環参照問題をおいらもみんなのために解いたった!?」- 【見覚え】koichikのひとりごと【あります】 素晴らしいというか,やっぱり世の中にはすごい人がいるんだな,と痛感し,そして感激と感動でいっぱいである。 さっそくコードを見て,S2Wicketへの適用を進めている。S2Wicketの新機能を早く離陸させることが,お二方への恩返しとなると考えている。 ありがとうございます,やんやん,koichikさん! Tw

  • 動的プロキシが循環参照していた際のシリアライズ問題

    S2Wicketの新仕様を実装する際に問題となった,動的プロキシのシリアライズ問題だが,ここで直面した問題を整理したいと思う。そのために,問題領域に限定したコードを作成したので,興味のある方,解決策を知ってるぜ!という方は,ぜひ ここからプロジェクトをダウンロードして欲しい。 では,問題の簡単な説明をしていこう。まず,SwingやSWTなどのコンポーネント関連のクラスでよく見られるコンポジットなクラス構造を想像する。 Componentクラスはparentフィールドに他のComponentを保持することができ,parentフィールドは親のコンポーネントを表している。Formクラスは子となるComponentクラスを保持することができる。来であれば複数のコンポーネントを持つことができるようにすべきだが,コード上ではchildフィールド1つとしている。 全てのクラスは,abstractなクラ

  • 次期S2Wicket仕様断念の原因となった動的オブジェクトの循環参照問題をぼくがみんなのために解いたった! - 矢野勉のはてな日記

    Java, Wicket下記の記事について、よりエレガントな解法がkoichikさんから発表されました。詳しくは翌日のエントリをどうぞ。S2Wicket開発者よういちろうさんの下記記事を参照。新S2Wicket仕様,断念上の記事が公開された時に、私、コメントをつけたんですよ。こんばんは。是非一度問題を追いかけてみたいので、テストコードを公開してみませんか? 誰かが問題を解決してくれるかも....そうしたらエラーを再現するための参照コードが公開されたんですが、今の今まで余裕なくて放置してましたすみません。動的プロキシが循環参照していた際のシリアライズ問題デバッガで追いかけてみると原因はほぼすぐに分かりました。よういちろうさんの指摘通り、Javaのオブジェクトシリアリゼーションの仕様ですね、これは。注 - オブジェクトが完全に構築されるまでは readResolve メソッドはオブジェクトに呼

  • 替わりのオブジェクトをシリアライズするwriteReplace()/readResolve()

    今回は「 動的プロキシとシリアライズ」エントリで取り上げた通り,writeReplace()メソッドとreadResolve()メソッドの使い方について紹介してみようと思う。 あるオブジェクトをシリアライズしたくなったとする。しかし,時として,そのオブジェクトをそのままシリアライズすることができない理由が出てきたりする。そのままシリアライズしてしまうとサイズが非常に大きくなってしまう,などがすぐに思い付く代表例だろう。その場合,シリアライズしたい情報を自分で決定し,さらに情報を加工するなどして,自前の形で永続化を行いたくなる。 そのようなニーズに応えるのが,writeReplace()/readResolve()メソッドの機構である。これは,シリアライズ時およびデシリアライズ時に自動的に呼び出されるメソッドであり,これらのメソッドを使うことによって,シリアライズの際に対象のオブジェクトその

  • 1