6.3.2. Externalizable API 設定例


JBoss Data Grid の Externalizable API を設定するには、次の手順を実行します。
  • マーシャリングまたはマーシャリング解除するオブジェクトのタイプの externalizer 実装を提供します。
  • {@link SerializeWith} を使用してマーシャリングされたタイプクラスをアノテートし、externalizer クラスを指定します。
例:
import org.infinispan.marshall.Externalizer;
import org.infinispan.marshall.SerializeWith;
 
@SerializeWith(Person.PersonExternalizer.class)
public class Person {
 
   final String name;
   final int age;
 
   public Person(String name, int age) {
      this.name = name;
      this.age = age;
   }
 
   public static class PersonExternalizer implements Externalizer<Person> {
      @Override
      public void writeObject(ObjectOutput output, Person person)
            throws IOException {
         output.writeObject(person.name);
         output.writeInt(person.age);
      }
 
      @Override
      public Person readObject(ObjectInput input)
            throws IOException, ClassNotFoundException {
         return new Person((String) input.readObject(), input.readInt());
      }
   }
}


Copy to Clipboard Toggle word wrap
このようにエクスターナライザーを設定するのには複数の欠点があります。
  • モデル内の制約により、この方法で生成されたペイロードサイズが非効率になることがあります。
  • ソースコードが利用不可、またはソースコードを変更できないクラスにエクスターナライザーが必要になることがあります。
  • アノテーションを使用すると、マーシャリングレイヤーなどの下位レベル詳細を抽象化しようとするフレームワーク開発者またはサービスプロバイダーが制約を受けることがあります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat