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]
---------------------------------------------------------------------