Einar,


Infelizmente eu tambem so' consigo imaginar a solucao que voce chamou de
pessima. Alias, se o atributo _bos pode
ser estático, talvez ele não precise ser atributo da classe e você pode
simplesmente o alocar:

super(new ByteArrayOutputStream());

isso nao serve para voce ?


Boa sorte,


[]'s


Fabio

Einar Saukas wrote:

> '
>         Oi pessoal!
>
>         Encontrei um problema interessante no projeto em que estou
> trabalhando, será que alguém tem alguma sugestão? Minha intenção
> era fazer uma classe assim, só que não funciona:
>
> class MessageOutputStream extends ObjectOutputStream {
>   private ByteArrayOutputStream _bos;
>   MessageOutputStream() throws java.io.IOException {
>     super(_bos = new ByteArrayOutputStream());  // ERRO!
>   }
> }
>
>         Todas as outras soluções semelhantes que eu consegui imaginar
> também não funcionam, como essa por exemplo:
>
> class MessageOutputStream extends ObjectOutputStream {
>   private ByteArrayOutputStream _bos;
>   MessageOutputStream() throws java.io.IOException {
>     ByteArrayOutputStream tmp = new ByteArrayOutputStream();
>     super(tmp);  // ERRO!
>     _bos = tmp;
>   }
> }
>
>         Na verdade, existe uma única variante que funciona, mas é
> uma péssima solução:
>
> class MessageOutputStream extends ObjectOutputStream {
>   static ByteArrayOutputStream tmp;
>   private ByteArrayOutputStream _bos;
>   MessageOutputStream() throws java.io.IOException {
>     super(tmp = new ByteArrayOutputStream());
>     _bos = tmp;
>   }
> }
>
>         Por isso, a solução que eu acabei adotando foi deixar parte
> da inicialização para ser feita pelo "cliente" da classe:
>
> class MessageOutputStream extends ObjectOutputStream {
>   private ByteArrayOutputStream _bos;
>   MessageOutputStream(ByteArrayOutputStream bos)
>       throws java.io.IOException {
>     super(bos);
>     _bos = bos;
>   }
> }
>
>         Em todo caso, se alguém tiver alguma idéia de como implementar
> minha intenção original, eu agradeço. Eu acho que não tem muito jeito,
> mas não custa nada perguntar...
>
>         Um abraço,
>
> Einar Saukas
> Technical Consultant
> Summa Technologies, Inc.
> http://www.summa-tech.com
>
>     --------------------------- LISTA SOUJAVA ---------------------------
>     http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
>     [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
>     ---------------------------------------------------------------------

    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a