|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.naming.directory.BasicAttribute
public class BasicAttribute
此類別提供 Attribute 介面的基本實作。
此實作不支持網要方法 getAttributeDefinition() 和 getAttributeSyntaxDefinition()。它們僅拋出 OperationNotSupportedException。如果 BasicAttribute 的子類別支持它們,則其應該覆寫這些方法。
在測試相等性或搜尋值時,BasicAttribute 類別預設使用 Object.equals() 確定屬性值的相等性,值為陣列時除外。對於陣列,需要使用 Object.equals() 檢查陣列的每個元素。在進行類似的相等性檢查時,BasicAttribute 的子類別可以通過覆寫那些在其中使用網要具有意義的方法來利用網要資訊。類似地,預設情況下 BasicAttribute 類別返回傳遞給其建構子和/或使用添加/移除方法進行操作的值。BasicAttribute 的子類別可以覆寫 get() 和 getAll(),從目錄動態獲取值(或者直接實作 Attribute 介面,而不為 BasicAttribute 創建子類別)。
注意,更新 BasicAttribute(如添加或移除值)對目錄中相應的屬性表示形式沒有影響。只有使用 DirContext 介面中的操作才能實作對目錄的更新。
BasicAttribute 實例與共時多執行緒存取不同步。試圖存取並修改 BasicAttribute 的多個執行緒應該鎖定物件。
欄位摘要 | |
---|---|
protected String |
attrID
保存屬性的 id。 |
protected boolean |
ordered
記錄此屬性的值是否有序的標誌。 |
protected Vector<Object> |
values
保存屬性的值。 |
建構子摘要 | |
---|---|
BasicAttribute(String id)
建構一個不帶值無序屬性的新實例。 |
|
BasicAttribute(String id,
boolean ordered)
建構一個不帶值的可能為有序屬性的新實例。 |
|
BasicAttribute(String id,
Object value)
建構一個帶有單個值的無序屬性的新實例。 |
|
BasicAttribute(String id,
Object value,
boolean ordered)
建構一個帶有單個值的可能為有序屬性的新實例。 |
方法摘要 | |
---|---|
void |
add(int ix,
Object attrVal)
將屬性值添加到屬性值的有序列表中。 |
boolean |
add(Object attrVal)
向此屬性添加新值。 |
void |
clear()
從此屬性移除所有值。 |
Object |
clone()
創建並返回此物件的一個副本。 |
boolean |
contains(Object attrVal)
確定值是否在此屬性中。 |
boolean |
equals(Object obj)
確定 obj 是否等於此屬性。 |
Object |
get()
檢索此屬性的其中一個值。 |
Object |
get(int ix)
從屬性值的有序列表中檢索屬性值。 |
NamingEnumeration<?> |
getAll()
檢索此屬性值的列舉。 |
DirContext |
getAttributeDefinition()
檢索此屬性的網要定義。 |
DirContext |
getAttributeSyntaxDefinition()
檢索與此屬性關聯的語法定義。 |
String |
getID()
檢索此屬性的 id。 |
int |
hashCode()
計算此屬性的雜湊碼。 |
boolean |
isOrdered()
確定此屬性的值是否是有序的。 |
Object |
remove(int ix)
從屬性值的有序列表中移除屬性值。 |
boolean |
remove(Object attrval)
從此屬性中移除指定值。 |
Object |
set(int ix,
Object attrVal)
設置屬性值的有序列表中的屬性值。 |
int |
size()
檢索此屬性中的值數。 |
String |
toString()
產生此屬性的字元串表示形式。 |
從類別 java.lang.Object 繼承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
protected String attrID
protected transient Vector<Object> values
protected boolean ordered
建構子詳細資訊 |
---|
public BasicAttribute(String id)
id
- 屬性的 id。它不能為 null。public BasicAttribute(String id, Object value)
id
- 屬性的 id。它不能為 null。value
- 屬性的值。如果為 null,則向屬性中添加 null 值。public BasicAttribute(String id, boolean ordered)
id
- 屬性的 id。它不能為 null。ordered
- 為 true 表示屬性值將是有序的;為 false 表示其為無序。public BasicAttribute(String id, Object value, boolean ordered)
id
- 屬性的 id。它不能為 null。value
- 屬性的值。如果為 null,則向屬性中添加 null 值。ordered
- 為 true 表示屬性值將是有序的;為 false 表示其為無序。方法詳細資訊 |
---|
public Object clone()
Object
複製的描述為 true,表達式:x.clone() != x
也為 true,但這些並非必須要滿足的要求。一般情況下:x.clone().getClass() == x.getClass()
為 true,但這並非必須要滿足的要求。x.clone().equals(x)
按照慣例,返回的物件應該通過調用 super.clone 獲得。如果一個類別及其所有的父級類別(Object 除外)都遵守此約定,則 x.clone().getClass() == x.getClass()。
按照慣例,此方法返回的物件應該獨立於該物件(正被複製的物件)。要獲得此獨立性,在 super.clone 返回物件之前,有必要對該物件的一個或多個欄位進行修改。這通常意味著要複製包含正在被複製物件的內部「深層結構」的所有可變物件,並使用對副本的參考替換對這些物件的參考。如果一個類別只包含基本欄位或對不變物件的參考,那麼通常不需要修改 super.clone 返回的物件中的欄位。
Object 類別的 clone 方法執行特定的複製操作。首先,如果此物件的類別不能實作介面 Cloneable,則會拋出 CloneNotSupportedException。注意,所有的陣列都被視為實作介面 Cloneable。否則,此方法會創建此物件的類別的一個新實例,並像通過分派那樣,嚴格使用此物件相應欄位的內容初始化該物件的所有欄位;這些欄位的內容沒有被自我複製。所以,此方法執行的是該物件的「淺表複製」,而不「深層複製」操作。
Object 類別本身不實作介面 Cloneable,所以在類別為 Object 的物件上調用 clone 方法將會導致在運行時拋出異常。
Attribute
中的 clone
Object
中的 clone
Cloneable
public boolean equals(Object obj)
預設情況下,在比較屬性 id 及其值時使用 Object.equals(),值為陣列時除外。對於陣列,需要使用 Object.equals() 檢查陣列的每個元素。子類別可以覆寫此方法以利用網要語法資訊和比對規則,其定義了對兩個屬性的相等有意義的內容。子類別如何使用和是否使用網要資訊由子類別確定。如果子類別覆寫 equals(),則其也應該覆寫 hashCode(),這樣兩個相等的屬性才能具有相同的雜湊碼。
Object
中的 equals
obj
- 要檢查的可能為 null 的物件。
hashCode()
,
contains(java.lang.Object)
public int hashCode()
該雜湊碼通過將屬性 id 及其所有值的雜湊碼相加來計算,值為陣列時除外。對於陣列,要加上每個陣列元素的雜湊碼。如果子類別覆寫 hashCode(),則其也應該覆寫 equals(),這樣兩個相等的屬性才能具有相同的雜湊碼。
Object
中的 hashCode
equals(java.lang.Object)
public String toString()
Object
中的 toString
public NamingEnumeration<?> getAll() throws NamingException
預設情況下,返回值就是傳遞給建構子的和/或使用添加/替換/移除方法對其進行操作的那些值。子類別可以覆寫此方法以從目錄動態檢索值。
Attribute
中的 getAll
NamingException
- 如果檢索值時遇到命名異常。Attribute.isOrdered()
public Object get() throws NamingException
預設情況下,返回值就是傳遞給建構子的和/或使用添加/替換/移除方法對其進行操作的那些值之一。子類別可以覆寫此方法以從目錄動態檢索值。
Attribute
中的 get
NamingException
- 如果檢索值時遇到命名異常。public int size()
Attribute
複製的描述
Attribute
中的 size
public String getID()
Attribute
複製的描述
Attribute
中的 getID
public boolean contains(Object attrVal)
預設情況下,在將 attrVal 與此屬性的值相比較時使用 Object.equals(),attrVal 為陣列時除外。對於陣列,需要使用 Object.equals() 檢查陣列的每個元素。子類別可以使用網要資訊確定相等性。
Attribute
中的 contains
attrVal
- 要檢查的可能為 null 的值。如果為 null,則檢查屬性是否具有其值不為 null 的屬性值。
Object.equals(java.lang.Object)
,
equals(java.lang.Object)
public boolean add(Object attrVal)
預設情況下,在將 attrVal 與此屬性的值相比較時使用 Object.equals(),attrVal 為陣列時除外。對於陣列,需要使用 Object.equals() 檢查陣列的每個元素。子類別可以使用網要資訊確定相等性。
Attribute
中的 add
attrVal
- 要添加的可能為 null 的新值。如果為 null,則將 null 作為屬性值添加。
public boolean remove(Object attrval)
預設情況下,在將 attrVal 與此屬性的值相比較時使用 Object.equals(),attrVal 為陣列時除外。對於陣列,需要使用 Object.equals() 檢查陣列的每個元素。子類別可以使用網要資訊確定相等性。
Attribute
中的 remove
attrval
- 要從此屬性中移除的可能為 null 的值。如果為 null,則移除為 null 的屬性值。
public void clear()
Attribute
複製的描述
Attribute
中的 clear
public boolean isOrdered()
Attribute
複製的描述
Attribute
中的 isOrdered
Attribute.get(int)
,
Attribute.remove(int)
,
Attribute.add(int, java.lang.Object)
,
Attribute.set(int, java.lang.Object)
public Object get(int ix) throws NamingException
Attribute
複製的描述
Attribute
中的 get
ix
- 屬性值的有序列表中值的索引。0 <= ix < size()。
NamingException
- 如果檢索值時遇到命名異常。public Object remove(int ix)
Attribute
複製的描述
Attribute
中的 remove
ix
- 要移除的值的索引。0 <= ix < size()。
public void add(int ix, Object attrVal)
Attribute
複製的描述
Attribute
中的 add
ix
- 要添加新值的屬性值的有序列表中的索引。0 <= ix <= size()。attrVal
- 要添加的可能為 null 的屬性值;如果為 null,則 null 即為添加的值。public Object set(int ix, Object attrVal)
Attribute
複製的描述
Attribute
中的 set
ix
- 屬性值的有序列表中值的索引。0 <= ix < size()。attrVal
- 要使用的可能為 null 的屬性值。如果為 null,則 'null' 將替換舊值。
public DirContext getAttributeSyntaxDefinition() throws NamingException
預設情況下此方法拋出 OperationNotSupportedException。如果子類別支持網要,則其應該覆寫此方法。
Attribute
中的 getAttributeSyntaxDefinition
OperationNotSupportedException
- 如果不支持獲取網要。
NamingException
- 如果在獲取網要時發生命名異常。public DirContext getAttributeDefinition() throws NamingException
預設情況下此方法拋出 OperationNotSupportedException。如果子類別支持網要,則其應該覆寫此方法。
Attribute
中的 getAttributeDefinition
OperationNotSupportedException
- 如果不支持獲取網要。
NamingException
- 如果在獲取網要時發生命名異常。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。