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