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になる場合もある。IllegalArgumentException
public 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の場合があり、これは空の記述子と同等。IllegalArgumentException
public 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
、インタフェース: DescriptorRead
public String toString()
Object
toString
メソッドは、このオブジェクトを「テキストで表す」文字列を返します。この結果は、人間が読める簡潔で有益な情報であるべきです。すべてのサブクラスで、このメソッドをオーバーライドすることをお勧めします。
クラス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
、クラス: Object
o
- 比較対象のオブジェクト。o
がMBeanInfoであり、上記のルールによりこのオブジェクトと等しい場合にだけtrue。Object.hashCode()
、HashMap
public int hashCode()
Object
HashMap
によって提供されるハッシュ・テーブルなどの、ハッシュ・テーブルの利点のためにサポートされています。
hashCode
の一般的な規則は次のとおりです。
equals
の比較で使用される情報が変更されていなければ、hashCode
メソッドは常に同じ整数を返す必要があります。ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。
equals(Object)
メソッドに従って2つのオブジェクトが等しい場合は、2つの各オブジェクトに対するhashCode
メソッドの呼出しによって同じ整数の結果が生成される必要があります。
Object.equals(java.lang.Object)
メソッドに従って2つのオブジェクトが等しくない場合は、2つの各オブジェクトに対するhashCode
メソッドの呼出しによって異なる整数の結果が生成される必要はありません。ただし、プログラマは、等しくないオブジェクトに対して異なる整数の結果を生成すると、ハッシュ・テーブルのパフォーマンスが向上する場合があることに気付くはずです。
クラスObject
によって定義されたhashCodeメソッドは、可能なかぎり、異なるオブジェクトに対して異なる整数を返します。(これは通常、オブジェクトの内部アドレスを整数に変換することによって実装されますが、この実装テクニックはJava™プログラミング言語では必要ありません。)
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.