Excelente resposta para a questão. --- "Dr. Spock" <[EMAIL PROTECTED]> escreveu: > Caro Wagner, > > Para falar a verdade não importa muito se é ou > não um tipo primitivo. > > A palavra reservada 'void' tem o propósito de > indicar, para o > compilador e para o 'runtime', que um método não > retorna um parâmetro. > Só isso e nada mais do que isso. Contudo, por > simetria e facilidade de > leitura podemos dizer que void é um tipo, mas não > queremos > necessariamente dizer que 'void' é um tipo. > > Já a classe 'Void' é uma classe como outra > qualquer. Sabemos que um > tipo primitivo (através das suas repectivas classes > 'wrapper'), a > interface de uma classe e uma inteface sempre > definem um tipo [1]. > Então, a classe 'Void', apesar de não ser possível > instanciá-la (The > Void class is an uninstantiable placeholder class), > define um tipo. Mas, > a verdadeira utilidade da classe 'Void' está no > conceito de reflexão > [2]. Reflexão nos permite ter acesso às informações > de uma classe > (metadados de uma classe) em tempo de execução. > Através da reflexão é > possível ter informações sobre os campos, métodos e > construtores de uma > classe carregada em memória. Ou seja, em tempo de > execução de uma > aplicação Java, é possível obter informações sobre > quais métodos uma > classe tem e, a partir de um dado método, pode-se > ter acesso aos > parâmetros recebidos e retornado por este método. > Para cada parâmetro de > entrada do método, é possível saber o seu tipo. O > mesmo tb é possível > para o parâmetro de retorno do método. Quando um > método retorna um > objeto fica óbvio qual o tipo retornado (um tipo > primitivo via a sua > classe wrapper, uma classe ou uma interface). E > quando o método não > retorna nada? Vc tb precisa saber quando um método > não retorna algo > durante o processo de reflexão de uma classe. Por > simetria, já que a > reflexão pode informar o tipo retornado via a > definição de uma classe, é > necessário ter uma classe que defina um tipo e > indique que o método em > questão não retorna nada. Neste caso estamos falando > da classe 'Void'. > Várias informações também podem ser obtidas por > intermédio da classe > Class [4]. Neste último caso o processo é chamado de > 'instrospecção', > mas a classe 'Void' já não é mais necessária. > > Para maiores detalhes: > > [1]. > > http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html > http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#44365 > http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#238680 > http://java.sun.com/j2se/1.3/docs/guide/reflection/spec/java-reflection.doc.html#1705 > > [2]. > > http://java.sun.com/j2se/1.3/docs/guide/reflection/index.html > > [3]. > > http://java.sun.com/j2se/1.3/docs/guide/reflection/spec/java-reflectionTOC.doc.html > > [4]. > > http://java.sun.com/j2se/1.3/docs/api/java/lang/Class.html > > É isso aí ... Enjoy ... > []´s > > Spock > > Wagner Menezes wrote: > > Pessoal, > > > > surgiu uma duvida bastante intrigante, se em > alguma prova tiver a > > seguinte questao: > > void eh um tipo primitivo? > > a resposta eh verdadeira ou falsa? > > a duvida surgiu pois no livro "Thinking in Java" > (segunda edicao), > > pagina 68, indica que void eh um tipo primitivo. > > Porem no "The Java Language Specification - > second edition", pagina > > 286, tem: > > "Note that the Java programming language does not > allow a "cast to > > void"—void is not a type—so the traditional C > trick of writing an > > _expression statement such as..." > > e mais ainda na API de Java referente a classe > Void tem o seguinte: > > "The Void class is an uninstantiable placeholder > class to hold a > > reference to the Class object representing the > primitive Java type void." > > fica entao a questao void eh tipo primitivo? > > se void eh tipo primitivo, a classe Void eh uma > Wrapper Class? > > > > > > aguardo respostas, > > > > Wagner > > > > > > > ------------------------------------------------------------------------ > > *Busca Yahoo! <http://br.busca.yahoo.com/>* > > O melhor lugar para encontrar tudo o que você > procura na Internet > > > > > ------------------------------ 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 > historico: > http://www.mail-archive.com/java-list%40soujava.org.br > para sair da lista: envie email para > [EMAIL PROTECTED] > ------------------------------------------------------------------------- >
_______________________________________________________________________ Busca Yahoo! O melhor lugar para encontrar tudo o que você procura na Internet http://br.busca.yahoo.com/ ------------------------------ 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 historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------