public class Encoder extends Object
Encoderは、公開APIに関して複数のJavaBeansの状態をエンコードするファイルまたはストリームを作成する際に使用できるクラスです。 Encoderは、持続的な委譲とともに、オブジェクト・グラフを一連のStatementsとそれを作成するのに使用されるExpressionに分解します。 通常、サブクラスは、ユーザーが読める書式、たとえばJavaソース・コードやXMLとして、これらの式の構文を提供します。 | コンストラクタ | 説明 |
|---|---|
Encoder() |
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
Object |
get(Object oldInstance) |
このストリームによって作成された、その環境における
oldInstanceの試験値を返します。 |
ExceptionListener |
getExceptionListener() |
このストリームの例外ハンドラを取得します。
|
PersistenceDelegate |
getPersistenceDelegate(Class<?> type) |
指定された型の持続的な委譲を返します。
|
Object |
remove(Object oldInstance) |
このインスタンスのエントリを削除し、古いエントリを返します。
|
void |
setExceptionListener(ExceptionListener exceptionListener) |
このストリームの例外ハンドラを
exceptionListenerに設定します。 |
void |
setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate) |
指定された永続的な委譲を指定されたタイプに関連付けます。
|
void |
writeExpression(Expression oldExp) |
実装は、最初に、この値を持つ式がすでに書き込まれているかどうかを確認します。
|
protected void |
writeObject(Object o) |
指定されたオブジェクトを出力ストリームに書き込みます。
|
void |
writeStatement(Statement oldStm) |
ストリームに
oldStm文を書き込みます。 |
protected void writeObject(Object o)
o - ストリームに書き込まれるオブジェクト。XMLDecoder.readObject()public void setExceptionListener(ExceptionListener exceptionListener)
exceptionListenerに設定します。 このストリームが回復可能な例外をキャッチすると、この例外ハンドラに通知されます。 exceptionListener - このストリームの例外ハンドラ。nullの場合は、デフォルトの例外リスナーが使用されます。getExceptionListener()public ExceptionListener getExceptionListener()
setExceptionListener(java.beans.ExceptionListener)public PersistenceDelegate getPersistenceDelegate(Class<?> type)
setPersistenceDelegate(java.lang.Class<?>, java.beans.PersistenceDelegate)メソッドを使用して指定された型関連付けられている場合は、それが返されます。
Beanクラスの持続的な委譲は、BeanPersistenceDelegateという名前で同じパッケージ内にある必要があります。
public class Bean { ... }
public class BeanPersistenceDelegate { ... }
Beanクラスの場合は、BeanPersistenceDelegateクラスのインスタンスが返されます。
nullである場合は、null値をエンコードする内部共有の持続的な委譲が返されます。
enum型の場合は、この列挙値の定数をその名前によってエンコードする内部共有の持続的な委譲が返されます。
Proxy.newProxyInstance(java.lang.ClassLoader, java.lang.Class<?>[], java.lang.reflect.InvocationHandler)メソッドを使用してプロキシ・インスタンスをエンコードする内部共有の持続的な委譲が返されます。
BeanInfoにpersistenceDelegate属性が定義されたBeanDescriptorがある場合は、この名前付き属性の値が返されます。
Introspectorクラスによって返されるsetterメソッドとgetterメソッドペアの照合によって特色付けられることを示します。 デフォルトコンストラクタは、ConstructorProperties注釈を持つ、パラメータの数がもっとも多いコンストラクタです。 ConstructorProperties注釈の付けられたコンストラクタがない場合、引数なしのコンストラクタ(パラメータのないコンストラクタ)が使用されます。 たとえば次のコードでは、Fooクラスでは引数なしのコンストラクタが使用され、Barクラスでは2つのパラメータを持つコンストラクタが使用されます。
public class Foo {
public Foo() { ... }
public Foo(int x) { ... }
}
public class Bar {
public Bar() { ... }
@ConstructorProperties({"x"})
public Bar(int x) { ... }
@ConstructorProperties({"x", "y"})
public Bar(int x, int y) { ... }
}
type - オブジェクトのクラスsetPersistenceDelegate(java.lang.Class<?>, java.beans.PersistenceDelegate), Introspector.getBeanInfo(java.lang.Class<?>), BeanInfo.getBeanDescriptor()public void setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)
type - 指定された持続的な委譲が適用されるオブジェクトのクラスdelegate - 指定された型のインスタンスの持続的な委譲getPersistenceDelegate(java.lang.Class<?>), Introspector.getBeanInfo(java.lang.Class<?>), BeanInfo.getBeanDescriptor()public Object remove(Object oldInstance)
oldInstance - 削除されるエントリ。get(java.lang.Object)public Object get(Object oldInstance)
oldInstanceの試験値を返します。 持続的な委譲は、この値の初期化によって出力時に等価オブジェクトを作成するのか、あるいは新しいオブジェクトをインスタンス化する必要があるのかどうかを、mutatesToメソッドを使って判断します。 この値がストリームにとって未知の値である場合、戻り値はnullになります。 oldInstance - 検索されるインスタンス。public void writeStatement(Statement oldStm)
oldStm文を書き込みます。 oldStmは、完全に呼出し元の環境で書き込まれる必要があります。これは、ターゲットとすべての引数が、書き込まれるオブジェクト・グラフの一部になっていなければならないということです。 これらの式は、何が起こったかを示す一連の式、すなわち、出力ストリームにオリジナルと同様のオブジェクト・グラフを生成する方法を示す式になります。
このメソッドを実装すると、ストリームの読込み時にその環境内の式となる、2番目の式が生成されます。 この式を取得するには、ターゲット上のwriteObjectとすべての引数を呼び出し、その結果を使って新しい式を構築します。
oldStm - ストリームに書き込まれる式。public void writeExpression(Expression oldExp)
writeStatementと同様の手順で式が複製され、writeObjectの呼出しにより、複製された式の値とこの式の値が照合されます。 oldExp - ストリームに書き込まれる式。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。