ObjectInputStream.ReadUnshared 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
讀取 ObjectInputStream 中的「未共享」物件。
[Android.Runtime.Register("readUnshared", "()Ljava/lang/Object;", "GetReadUnsharedHandler")]
public virtual Java.Lang.Object? ReadUnshared();
[<Android.Runtime.Register("readUnshared", "()Ljava/lang/Object;", "GetReadUnsharedHandler")>]
abstract member ReadUnshared : unit -> Java.Lang.Object
override this.ReadUnshared : unit -> Java.Lang.Object
傳回
關於反序列化物件的參考
- 屬性
例外狀況
如果找不到物件圖中某個物件的類別。
如果讀取來源串流時發生錯誤。
備註
讀取 ObjectInputStream 中的「未共享」物件。 此方法與 readObject 相同,但會防止後續呼叫 readObject 與 readUnshared 回傳透過此呼叫獲得的反序列化實例的額外參考。 具體來說: <ul><li>如果 readUnshared 被呼叫來反序列化一個回溯參照(即先前寫入該串流的物件的串流表示),將會拋出 ObjectStreamException。
<li>如果 readUnshared 成功返回,則任何後續嘗試反序列化 readUnshared 去序列化的串流句柄的回溯參考,都會拋出 ObjectStreamException。 </ul> 透過 readUnshared 反序列化物件會使與回傳物件相關的串流句柄失效。 請注意,這本身並不總是保證 readUnshared 回傳的參考是唯一的;反序列化物件可能定義 readResolve 方法,回傳對其他方可見的物件,或 readUnshared 可回傳可從串流中其他地方或外部管道取得的類別物件或枚舉常數。 如果反序列化物件定義了 readResolve 方法,且呼叫該方法回傳陣列,則 readUnshared 會回傳該陣列的淺克隆;這確保回傳的陣列物件是唯一性的,且即使底層資料流已作,也無法從 ObjectInputStream 上呼叫 readObject 或 readUnshared 第二次取得。
覆蓋此方法的 ObjectInputStream 子類別只能在具備「enableSubclassImplementation」SerializablePermissions 的安全情境中建構;未經此許可嘗試實例化此類子類別,將觸發 SecurityException。
在 1.4 版本加入。
Java 文件 java.io.ObjectInputStream.readUnshared()。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。