|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.management.ImmutableDescriptor
public class ImmutableDescriptor
不可變的描述符。
欄位摘要 | |
---|---|
static ImmutableDescriptor |
EMPTY_DESCRIPTOR
空描述符。 |
建構子摘要 | |
---|---|
ImmutableDescriptor(Map<String,?> fields)
建構一個描述符,其中欄位名稱和值是給定 Map 的鍵和值。 |
|
ImmutableDescriptor(String... fields)
建構包含給定欄位的描述符。 |
|
ImmutableDescriptor(String[] fieldNames,
Object[] fieldValues)
建構包含給定欄位和值的描述符。 |
方法摘要 | |
---|---|
Descriptor |
clone()
返回一個與此描述符相等的描述符。 |
boolean |
equals(Object o)
將此描述符與給定物件進行比較。 |
String[] |
getFieldNames()
返回描述符中的所有欄位名。 |
String[] |
getFields()
以 string 陣列的形式返回此 descriptor 中所包含的所有欄位。 |
Object |
getFieldValue(String fieldName)
返回指定欄位名的值,如果該名稱不存在任何值,則返回 null。 |
Object[] |
getFieldValues(String... fieldNames)
以 Object 陣列的形式返回該 descriptor 中的所有欄位值。 |
int |
hashCode()
返回此描述符的雜湊碼值。 |
boolean |
isValid()
如果所有欄位在給定其名稱的情況下都有合法值,則返回 true。 |
void |
removeField(String fieldName)
從描述符移除欄位。 |
void |
setField(String fieldName,
Object fieldValue)
因為此類別不可變,所以不支持此操作。 |
void |
setFields(String[] fieldNames,
Object[] fieldValues)
因為此類別不可變,所以不支持此操作。 |
String |
toString()
返回該物件的字元串表示。 |
static ImmutableDescriptor |
union(Descriptor... descriptors)
返回一個 ImmutableDescriptor ,其內容是給定描述符的並集。 |
從類別 java.lang.Object 繼承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
public static final ImmutableDescriptor EMPTY_DESCRIPTOR
建構子詳細資訊 |
---|
public ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)
IllegalArgumentException
- 如果陣列為 null、陣列的大小不同、欄位名稱為 null 或空,或者相同的欄位名稱出現多次。public ImmutableDescriptor(String... fields)
fieldName=fieldValue
的形式。欄位名稱在第一個 =
字元處結束;例如,如果 String 為 a=b=c
,則欄位名稱為 a
且其值為 b=c
。
IllegalArgumentException
- 如果參數為 null、欄位名稱為空、相同欄位名稱出現多次或者其中一個字元串不包含 =
字元。public ImmutableDescriptor(Map<String,?> fields)
建構一個描述符,其中欄位名稱和值是給定 Map 的鍵和值。
IllegalArgumentException
- 如果參數為 null、欄位名稱為 null 或空,或者相同欄位名稱出現多次(可能因為欄位名稱不區分大小寫所致)。方法詳細資訊 |
---|
public static ImmutableDescriptor union(Descriptor... descriptors)
返回一個 ImmutableDescriptor
,其內容是給定描述符的並集。出現在任何描述符中的每個欄位名稱都將出現在結果中,並具有調用方法時欄位名稱所具有的值。對任何描述符的後續更改不影響此處返回的 ImmutableDescriptor。
在最簡單的情況下,只有一個描述符,且返回的 ImmutableDescriptor
是在調用此方法時該描述符中欄位的副本:
Descriptor d = something(); ImmutableDescriptor copy = ImmutableDescriptor.union(d);
descriptors
- 要合併的描述符。任何描述符都可以為 null,在此情況下可以將其跳過。
ImmutableDescriptor
。如果它是一個套件含所有所需欄位的 ImmutableDescriptor,則返回的物件可以與某個輸入描述符相同。
IllegalArgumentException
- 如果兩個 Descriptor 套件含具有不同關聯值的相同欄位名稱。如果基本型別陣列值是具有相同元素的同一型別的值,則將其視為相同。如果 Arrays.deepEquals(Object[],Object[])
返回 true,則將物件陣列值視為相同。public final Object getFieldValue(String fieldName)
Descriptor
複製的描述
Descriptor
中的 getFieldValue
fieldName
- 欄位名稱。
public final String[] getFields()
Descriptor
複製的描述
Descriptor
中的 getFields
Descriptor.setFields(java.lang.String[], java.lang.Object[])
public final Object[] getFieldValues(String... fieldNames)
Descriptor
複製的描述fieldNames
String 陣列參數的順序相同。
Descriptor
中的 getFieldValues
fieldNames
- 欄位名稱的 String 陣列,應該返回這些欄位的值。如果該陣列為空,則將返回一個空陣列。如果陣列為 null,則將返回所有值,如同參數是 Descriptor.getFieldNames()
返回的陣列一樣。如果陣列中某個欄位名不存在(包括欄位名為 null 或空字元串的情況),則對於要返回的比對陣列元素,將返回 null。
fieldNames
列表為空,則將得到一個空陣列。public final String[] getFieldNames()
Descriptor
複製的描述
Descriptor
中的 getFieldNames
public boolean equals(Object o)
Arrays.deepEquals(Object[],Object[])
必須返回 true。Object.equals(Object)
必須返回 true。
Descriptor
中的 equals
Object
中的 equals
o
- 要與之比較的物件。
true
;否則返回 false
。Object.hashCode()
,
Hashtable
public int hashCode()
返回此描述符的雜湊碼值。該雜湊碼是描述符中每個欄位的雜湊碼的總和。名稱為 n
且值為 v
的欄位的雜湊碼是 n.toLowerCase().hashCode() ^ h
。這裡的 h
是 v
的雜湊碼,計算方式如下:
v
為 null,則 h
為 0。v
是基本型別陣列,則使用 java.util.Arrays.hashCode
的適當重載形式計算 h
。v
是物件陣列,則使用 Arrays.deepHashCode(Object[])
計算 h
。h
為 v.hashCode()
。
Descriptor
中的 hashCode
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
Object
複製的描述toString
方法會返回一個「以文本方式表示」此物件的字元串。結果應是一個簡明但易於讀懂的資訊表達式。建議所有子類別都覆寫此方法。
Object
類別的 toString
方法返回一個字元串,該字元串由類別名(物件是該類別的一個實例)、at 標記符“@
”和此物件雜湊碼的無符號十六進製表示組成。換句話說,該方法返回一個字元串,它的值等於:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Object
中的 toString
public boolean isValid()
Descriptor
中的 isValid
RuntimeOperationsException
- 如果有效性檢查失敗。如果描述符無效,則該方法返回 false,但如果嘗試確定有效性失敗,則將拋出此異常。public Descriptor clone()
返回一個與此描述符相等的描述符。對返回的描述符進行的更改不影響此描述符,反之亦然。
此方法返回它調用的物件。子類別可以覆寫此方法,以便在符合條件的情況下返回另一個物件。
Descriptor
中的 clone
Object
中的 clone
RuntimeOperationsException
- 如果 Names 或 Values 欄位的值為非法值。如果描述符建構由於任何原因而失敗,都將拋出此異常。Cloneable
public final void setFields(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
UnsupportedOperationException
的 RuntimeOperationsException
。否則,其行為將與可變描述符的行為相同:要麼因為非法參數而拋出異常,要麼無效。
Descriptor
中的 setFields
fieldNames
- 欄位名稱的 String 陣列。陣列和陣列元素不能為 null。fieldValues
- 對應欄位值的 Object 陣列。陣列不能為 null。陣列的元素可以為 null。
RuntimeOperationsException
- 如果由於某種原因更改失敗。如果 fieldNames
或 fieldValues
為 null,或者陣列的長度不同,或者其中一個陣列存在非法值,則包裹的異常為 IllegalArgumentException
。如果描述符不可變,且調用將更改其內容,則包裹的異常為 UnsupportedOperationException
。Descriptor.getFields()
public final void setField(String fieldName, Object fieldValue) throws RuntimeOperationsException
UnsupportedOperationException
的 RuntimeOperationsException
。否則,其行為將與可變描述符的行為相同:要麼因為非法參數而拋出異常,要麼無效。
Descriptor
中的 setField
fieldName
- 要設置的欄位的名稱。不能為 null 或空。fieldValue
- 針對該欄位名稱所設置的欄位值。如果 null 是欄位的有效值,則可以為 null。
RuntimeOperationsException
- 如果欄位名或欄位值不合法(包裹的異常為 IllegalArgumentException
);或者描述符不可變(包裹的異常為 UnsupportedOperationException
)。public final void removeField(String fieldName)
Descriptor
中的 removeField
fieldName
- 要移除的欄位的 String 名稱。如果欄位名不合法或找不到欄位,則不拋出任何異常。
RuntimeOperationsException
- 如果存在給定名稱的欄位且描述符不可變。包裹的異常將是一個 UnsupportedOperationException
。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。