S� para completar, o ponto que voc� colocou � bastante interessante
e deve ser observado...
        Entretanto, normalmente n�o faz muita diferen�a para um m�todo que
est� preparado para utilizar um objeto de uma determinada classe (Vector,
por exemplo) utilizar qualquer uma das suas subclasses j� que o polimorfismo
+ hierarquia de classes garantem a funcionalidade de forma transparente...

        De qualquer forma, a pol�tica de boa programa��o (pelo menos a
minha, hehehe) sugere que este tipo de comportamento diferenciado que
depende da classe do objeto n�o seja implementado no m�todo mas sim utilizar
sobrecarga de m�todos para isso...

por exemplo, ao inv�s de criar um m�todo mais ou menos assim:

        public void executaTeste(Object parametro) {
                if(parametro instanceOf Vector) {...}
                else if(parametro instanceOf Stack) {...}
                else if(parametro.instanceOf Hashtable) {...}
        }

sobrecarregue o m�todo para cada tipo esperado:

        public void executaTeste(Vector parametro) {...}
        public void executaTeste(Stack parametro) {...}
        public void executaTeste(Hashtable parametro) {...}

At� mais !

Fl�vio Eduardo de C�rdova
Datasul Technology
mailto:[EMAIL PROTECTED]

"One can only see what one observes, and one observes only things which are
already in the mind."

> ----- Mensagem original -----
> De:           Sven van 't Veer [SMTP:[EMAIL PROTECTED]]
> Enviada em:           ter�a-feira, 26 de setembro de 2000 15:27
> Para:         [EMAIL PROTECTED]
> Assunto:              Re: RES: [java-list] InstanceOf - New newbie
> 
> 
> 
> Flavio Eduardo de Cordova wrote:
> > 
> > Voc� poderia utiliz�-lo em uma situa��o onde um determinado m�todo
> tivesse
> > comportamento
> > diferenciado de acordo com o objeto passado ou no caso de uma valida��o,
> por
> > exemplo:
> > 
> > /**************
> > ** Suponha a sobreposi��o de um m�todo que receba uma refer�ncia
> > ** a Object mas que, nesta subclasse somente aceite objetos da classe
> > ** Vector
> > ******************/
> > public void armazena(Object obj) {
> >     if(!obj instanceOf Vector) {
> >         System.err.println("Esta subclasse n�o trata objetos que n�o
> Vetores
> > (Vector)");
> >         return;
> >     }
> > 
> >     ...
> > }
> Mas tenha quidados com isso. O 'Stack' tamb�m retornaria true neste caso
> (Stack � subclasse de Vector). Se for necessario de saber que a classe
> realmente � vector, teria que usar obj.getClass().equals("Vector")
> 
> Isso pode ser importante quando implementa om methodo equals:
>   public boolean equals(Object o){
>     return this == o ? true : ((o.getClass().equals(this.getClass())) &&
> (this.cgc_cpf.equals(((CGC_CPF_PK)o).cgc_cpf)));
>   }
> 
> Usando aqui instanceof pode dar problemas com subclasses do CGC_CPF_PK.
> 
> sven
> 
> -- 
> ==========================================================================
> ============
> Sven E. van 't Veer                                          
> http://www.cachoeiro.net
> Java Developer
> [EMAIL PROTECTED]
> ==========================================================================
> ============
> 
> ------------------------------ LISTA SOUJAVA ---------------------------- 
> http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP 
> d�vidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED] 
> -------------------------------------------------------------------------

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a