public class MBeanInfo extends Object implements Cloneable, Serializable, DescriptorRead
MBeanによって公開された管理インタフェース(管理オペレーションに使用できる属性と操作のセット)を記述します。このクラスのインスタンスは不変です。サブクラスは可変ですが、サブクラスの変更は推奨されていません。
通常、指定したMBeanのMBeanInfoは、MBeanの有効期間中は変更されません。Dynamic MBeanはMBeanInfoを変更できます。この場合、"jmx.mbean.info.changed"の型を使用したNotificationと、新しいMBeanInfoであるuserDataをDynamic MBeanにより発行することをお薦めします。これは必須ではありませんが、MBeanのクライアントが変更を検出するために従来の方法を提供します。MBeanInfo DescriptorのimmutableInfoおよびinfoTimeoutフィールドも参照してください。
Dynamic MBeanによって使用されるMBeanInfoのコンテンツは、getMBeanInfo()メソッドによって決定されます。Dynamic MBeanであるOpen MBean、Model MBeanが含まれます。
Standard MBeanによって使用されるMBeanInfoのコンテンツは、MBeanサーバーにより、次のように決定されます。
getClassName()。MBeanオブジェクトのJavaクラス名を返します。
getConstructors()。そのオブジェクト内のすべてのpublicコンストラクタのリストを返します。
getAttributes()。すべての属性のリストを返します。その属性が存在するかどうかは、Standard MBeanの規約に準拠したgetName、isName、またはsetNameメソッドのMBeanインタフェース内に存在するかどうかで推測できます。
getOperations()。属性を表さないMBeanインタフェース内のすべてのメソッドのリストを返します。
getNotifications()。MBeanがNotificationBroadcasterインタフェースを実装しない場合は空の配列、それ以外の場合はNotificationBroadcaster.getNotificationInfo()の呼出しの結果を返します。
getDescriptor()。MBeanインタフェース内の記述子注釈の内容を含む記述子を返します(@DescriptorKeyを参照)。
getDescription()が返す記述子と含まれている属性およびオペレーションの記述子は指定されません。
Standard MBeanによって使用されるMBeanInfoのその他の詳細情報は指定されません。指定されない詳細情報には、含まれるコンストラクタおよび通知の説明、コンストラクタやオペレーションに渡されるパラメータの名前、コンストラクタ・パラメータの説明が含まれます。
| コンストラクタと説明 |
|---|
MBeanInfo(String className, String description, MBeanAttributeInfo[] attributes, MBeanConstructorInfo[] constructors, MBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications)
MBeanInfoを構築します。 |
MBeanInfo(String className, String description, MBeanAttributeInfo[] attributes, MBeanConstructorInfo[] constructors, MBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications, Descriptor descriptor)
MBeanInfoを構築します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
Object |
clone()
このインスタンスのシャロー・コピーを返します。
|
boolean |
equals(Object o)
このMBeanInfoを別のMBeanInfoと比較します。
|
MBeanAttributeInfo[] |
getAttributes()
管理用の公開属性のリストを返します。
|
String |
getClassName()
この
MBeanInfoによって記述されたMBeanのJavaクラスの名前を返します。 |
MBeanConstructorInfo[] |
getConstructors()
MBeanのpublicコンストラクタのリストを返します。
|
String |
getDescription()
人間が読める形式のMBeanの説明を返します。
|
Descriptor |
getDescriptor()
このMBeanInfoの記述子を取得します。
|
MBeanNotificationInfo[] |
getNotifications()
MBeanによって発行された通知のリストを返します。
|
MBeanOperationInfo[] |
getOperations()
MBeanのオペレーションのリストを返します。
|
int |
hashCode()
オブジェクトのハッシュ・コード値を返します。
|
String |
toString()
オブジェクトの文字列表現を返します。
|
public MBeanInfo(String className, String description, MBeanAttributeInfo[] attributes, MBeanConstructorInfo[] constructors, MBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications) throws IllegalArgumentException
MBeanInfoを構築します。className - このMBeanInfoで記述されるMBeanのJavaクラスの名前。この値には正しい構文の任意のJavaクラス名を指定できる。必ずしも、MBeanサーバーまたはMBeanのClassLoaderの既知のJavaクラスでなくてもよい。MBeanのClassLoaderの既知のJavaクラスである場合、クラスのpublicメソッドに、このMBeanInfo内の属性とオペレーションを実装するStandard MBean内のメソッドを含めることが推奨されるが、これは必須ではない。description - 人間が読める形式のMBeanの説明(省略可能)。attributes - MBeanの公開属性のリスト。ゼロ長の配列を指定した場合と同様に、nullになる場合もある。constructors - MBeanのpublicコンストラクタのリスト。ゼロ長の配列を指定した場合と同様に、nullになる場合もある。operations - MBeanのオペレーションのリスト。ゼロ長の配列を指定した場合と同様に、nullになる場合もある。notifications - 発行された通知のリスト。ゼロ長の配列を指定した場合と同様に、nullになる場合もある。IllegalArgumentExceptionpublic MBeanInfo(String className, String description, MBeanAttributeInfo[] attributes, MBeanConstructorInfo[] constructors, MBeanOperationInfo[] operations, MBeanNotificationInfo[] notifications, Descriptor descriptor) throws IllegalArgumentException
MBeanInfoを構築します。className - このMBeanInfoで記述されるMBeanのJavaクラスの名前。この値には正しい構文の任意のJavaクラス名を指定できる。必ずしも、MBeanサーバーまたはMBeanのClassLoaderの既知のJavaクラスでなくてもよい。MBeanのClassLoaderの既知のJavaクラスである場合、クラスのpublicメソッドに、このMBeanInfo内の属性とオペレーションを実装するStandard MBean内のメソッドを含めることが推奨されるが、これは必須ではない。description - 人間が読める形式のMBeanの説明(省略可能)。attributes - MBeanの公開属性のリスト。ゼロ長の配列を指定した場合と同様に、nullになる場合もある。constructors - MBeanのpublicコンストラクタのリスト。ゼロ長の配列を指定した場合と同様に、nullになる場合もある。operations - MBeanのオペレーションのリスト。ゼロ長の配列を指定した場合と同様に、nullになる場合もある。notifications - 発行された通知のリスト。ゼロ長の配列を指定した場合と同様に、nullになる場合もある。descriptor - MBeanの記述子。nullの場合があり、これは空の記述子と同等。IllegalArgumentExceptionpublic Object clone()
このインスタンスのシャロー・コピーを返します。このコピーは、super.clone()の呼び出し(Object.clone()によって実装されるデフォルトのネイティブ・シャロー・コピー・メカニズムの呼び出し)によって取得されます。内部フィールドについて、これ以上詳細なコピーは作成されません。
このクラスは不変なので、コピー・メソッドは主にサブクラスにとって重要になります。
public String getClassName()
MBeanInfoによって記述されたMBeanのJavaクラスの名前を返します。public String getDescription()
public MBeanAttributeInfo[] getAttributes()
MBeanAttributeInfoオブジェクトによって記述されます。返される配列は、内部配列のシャロー・コピー、つまりMBeanAttributeInfoオブジェクトを参照する内部配列のコピーになります。ただし、参照される各MBeanAttributeInfoオブジェクトはコピーされません。MBeanAttributeInfoオブジェクトの配列。public MBeanOperationInfo[] getOperations()
MBeanOperationInfoオブジェクトによって記述されます。返される配列は、内部配列のシャロー・コピー、つまりMBeanOperationInfoオブジェクトを参照する内部配列のコピーになります。ただし、参照される各MBeanOperationInfoオブジェクトはコピーされません。MBeanOperationInfoオブジェクトの配列。public MBeanConstructorInfo[] getConstructors()
MBeanのpublicコンストラクタのリストを返します。各コンストラクタはMBeanConstructorInfoオブジェクトによって記述されます。
返される配列は、内部配列のシャロー・コピー、つまりMBeanConstructorInfoオブジェクトを参照する内部配列のコピーになります。ただし、参照される各MBeanConstructorInfoオブジェクトはコピーされません。
返されるリストは完全でなくてもかまいません。つまり、MBeanは、リストにないpublicコンストラクタを持つこともできます。この場合、MBeanサーバーは、リストに含まれているかどうかに関係なく、コンストラクタを使って、このMBeanのクラスのインスタンスを新たに構築できます。
MBeanConstructorInfoオブジェクトの配列。public MBeanNotificationInfo[] getNotifications()
MBeanNotificationInfoオブジェクトによって記述されます。返される配列は、内部配列のシャロー・コピー、つまりMBeanNotificationInfoオブジェクトを参照する内部配列のコピーになります。ただし、参照される各MBeanNotificationInfoオブジェクトはコピーされません。MBeanNotificationInfoオブジェクトの配列。public Descriptor getDescriptor()
getDescriptor、インタフェース: DescriptorReadpublic String toString()
ObjecttoStringメソッドは、このオブジェクトを「テキストで表す」文字列を返します。この結果は、人間が読める簡潔で有益な情報であるべきです。すべてのサブクラスで、このメソッドをオーバーライドすることをお勧めします。
クラスObjectのtoStringメソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字「@」、およびオブジェクトのハッシュ・コードの符号なし16進数表現から構成される文字列を返します。つまり、このメソッドは次の値と等しい文字列を返します。
getClass().getName() + '@' + Integer.toHexString(hashCode())
public boolean equals(Object o)
このMBeanInfoを別のMBeanInfoと比較します。getClassName()、getDescription()、およびgetDescriptor()の戻り値が等しく、getAttributes()、getOperations()、getConstructors()、およびgetNotifications()の2つのオブジェクトによって返される配列のペアが等しい場合、2つのMBeanInfoオブジェクトは等しくなります。「等しい」とは、IDではなく、Object.equals(Object)が等しいことを意味します。
2つのMBeanInfoオブジェクトによって配列内に返される値が同じでも、その順番が異なっている場合、この2つのMBeanInfoオブジェクトは等しくありません。
equals、クラス: Objecto - 比較対象のオブジェクト。oがMBeanInfoであり、上記のルールによりこのオブジェクトと等しい場合にだけtrue。Object.hashCode()、HashMappublic int hashCode()
ObjectHashMapによって提供されるハッシュ・テーブルなどの、ハッシュ・テーブルの利点のためにサポートされています。
hashCodeの一般的な規則は次のとおりです。
equalsの比較で使用される情報が変更されていなければ、hashCodeメソッドは常に同じ整数を返す必要があります。ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。
equals(Object)メソッドに従って2つのオブジェクトが等しい場合は、2つの各オブジェクトに対するhashCodeメソッドの呼出しによって同じ整数の結果が生成される必要があります。
Object.equals(java.lang.Object)メソッドに従って2つのオブジェクトが等しくない場合は、2つの各オブジェクトに対するhashCodeメソッドの呼出しによって異なる整数の結果が生成される必要はありません。ただし、プログラマは、等しくないオブジェクトに対して異なる整数の結果を生成すると、ハッシュ・テーブルのパフォーマンスが向上する場合があることに気付くはずです。
クラスObjectによって定義されたhashCodeメソッドは、可能なかぎり、異なるオブジェクトに対して異なる整数を返します。(これは通常、オブジェクトの内部アドレスを整数に変換することによって実装されますが、この実装テクニックはJava™プログラミング言語では必要ありません。)
hashCode、クラス: ObjectObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object) バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.