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