質問: [( 'item_id'、 'int')、( 'desc_type'、 'byte')、...] 私はどんな機能的な言語でも同様のことができると思います。 しかし、このアプローチをjavaに取り入れる方法が見当たりません。 (たぶん私はあまりにもペダペすぎ、または関数型プログラミングとコードを書くコードを書くのに慣れてきたので、繰り返しを避けることができました:) 何か提案がありましたら宜しくお願いします。
回答: あなたの現在のコードが良い解決策であることに@silkyに同意します。 imoでは、(重複してはいませんが)少し反復するコードを作成しても問題ありません。 もっとpython風のソリューションを望んでいるのなら、 itemdescのメンバ属性をある種の順序を保存するマップ構造に置き換え、マップを反復処理する一般的な `writeto`メソッドを使ってシリアル化を行います。 また、属性ごとにゲッターを追加し、既存のフィールドのすべての用途を置き換える必要があります。 メンバー属性をpropertiesオブジェクトで置き換え、バイナリ書き込みの代わりにpropertiesシリアライゼーションを使用してください。 javaリフレクションを使ってメンバーの属性とその型にアクセスし、それらを直列化する一般的な `writeto`メソッドを書きます。 しかし、3つの場合すべてにおいて、コードは現在の「醜い」コードより遅く、より複雑になり、そして潜在的により脆弱になります。 私はしません。