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