ObjectInputStream.ReadUnshared Método

Definição

Lê um objeto "unshared" do 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

Retornos

referência ao objeto desserializado

Atributos

Exceções

se a classe de um dos objetos no grafo de objeto não puder ser encontrada.

se ocorrer um erro durante a leitura do fluxo de origem.

Comentários

Lê um objeto "unshared" do ObjectInputStream. Esse método é idêntico ao readObject, exceto que impede que chamadas subsequentes para readObject e readUnshared retornem referências adicionais à instância desserializada obtida por meio dessa chamada. Especificamente: <ul><li>Se readUnshared for chamado para desserializar uma referência de back (a representação de fluxo de um objeto que foi gravado anteriormente no fluxo), um ObjectStreamException será gerado.

<li>Se readUnshared retornar com êxito, todas as tentativas subsequentes de desserializar referências de back para o identificador de fluxo desserializado por readUnshared farão com que uma ObjectStreamException seja gerada. </ul> Desserializar um objeto por meio de readUnshared invalida o identificador de fluxo associado ao objeto retornado. Observe que isso em si nem sempre garante que a referência retornada por readUnshared seja exclusiva; o objeto desserializado pode definir um método readResolve que retorna um objeto visível para outras partes ou readUnshared pode retornar um objeto Class ou enumerável constante em outro lugar no fluxo ou por meios externos. Se o objeto desserializado definir um método readResolve e a invocação desse método retornar uma matriz, readUnshared retornará um clone superficial dessa matriz; isso garante que o objeto de matriz retornado seja exclusivo e não possa ser obtido uma segunda vez de uma invocação de readObject ou readUnshared no ObjectInputStream, mesmo que o fluxo de dados subjacente tenha sido manipulado.

Subclasses ObjectInputStream que substituem esse método só podem ser construídas em contextos de segurança que possuem o "enableSubclassImplementation" SerializablePermission; qualquer tentativa de instanciar essa subclasse sem essa permissão fará com que uma SecurityException seja gerada.

Adicionado em 1.4.

Documentação Java para java.io.ObjectInputStream.readUnshared().

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a

Confira também