Opa, isso est� mais para desinforma��o do que para informa��o (desculpa,
Robson ;-))

a visibilidade 'protected' � para classes *na mesma hierarquia*, e n�o para
o mesmo pacote. Para o mesmo pacote, deve-se n�o usar nada.

Mesmo que o construtor fosse p�blico, o Class.forName() n�o instancia um
objeto da classe, apenas inicializa a classe (ou seja, chama os blocos
est�ticos e inicializa as vari�veis est�ticas). Por isso, o fato do
construtor ser protected n�o causa problema. Se fosse necess�rio instanciar
um objeto Filho, a� seria imposs�vel, pois a inner class Filho n�o �
est�tica e por isso depende de uma inst�ncia da classe Pai (que n�o poderia
ser instanciada pois o construtor � protected).

A raz�o do erro � que a sintaxe deve ser "familia.Pai$Filho". Se isso
estiver dando ClassNotFoundException, seu classpath est� incorretamente
setado. (acabei de testar aqui e funciona).

Abra�os,

Renato Mangini Dias
Software Architect at Vetta Technologies - www.vettatech.com
Sun Java Certified Instructor/Programmer


> -----Mensagem original-----
> De: Robson Luis Ferreira [mailto:[EMAIL PROTECTED]]
> Enviada em: Friday, November 22, 2002 12:07 PM
> Para: [EMAIL PROTECTED]; Bruno Borges
> Assunto: Re: [enterprise-list] Fw: ClassLoader + Inner Class
>
>
>
>    Esse tipo de quest�o cai em provas de certifica��o:
> Como o construtor Pai � protected, s� ser� vis�vel
> dentro do pacote, da mesma forma que o c�digo abaixo
>
>   familia.Pai.Filho f = new familia.Pai().new Filho();
>
>    Retornaria erro de compila��o se estiver numa
> classe fora do seu pacote. Experimente deixar o
> construtor Pai como public ou simplesmente deixar sem
> esse construtor que funcionar� !
>
> []'s
> Robson Luis Ferreira
>
>
>
>  --- Bruno Borges <[EMAIL PROTECTED]> escreveu: >
> > ----- Original Message -----
> > From: "Bruno Borges" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Friday, November 22, 2002 9:09 AM
> > Subject: ClassLoader + Inner Class
> >
> >
> > > segue a seguinte classe:
> > >
> > > package familia;
> > >
> > > public class Pai {
> > >
> > >   protected Pai() {
> > >     // a classe pai nao pode ter construtor public
> > >   }
> > >
> > >   public class Filho() {
> > >
> > >     public Filho() {}
> > >   }
> > > }
> > >
> > > bom, acontece q em otra classe eu tento pegar o
> > objeto Class de Filho pelo
> > > Class.forName("familia.Pai.Filho");
> > > e isso estah disparando ClassNotFoundException...
> > ;(
> > >
> > > alguem ae tem uma luz pra resolver isso?
> >
> >
> _______________________________________________________________________
> > Yahoo! Encontros
> > O lugar certo para encontrar a sua alma g�mea.
> > http://br.encontros.yahoo.com/
> >
> >
> ---------------------------------------------------------------------
> > Para cancelar a subscri��o, envie mensagem para:
> > [EMAIL PROTECTED]
> > Para comandos adicionais, envie mensagem para:
> > [EMAIL PROTECTED]
> >
>
> _______________________________________________________________________
> Yahoo! GeoCities
> Tudo para criar o seu site: ferramentas f�ceis de usar, espa�o de
> sobra e acess�rios.
> http://br.geocities.yahoo.com/
>
> ---------------------------------------------------------------------
> Para cancelar a subscri��o, envie mensagem para:
> [EMAIL PROTECTED]
> Para comandos adicionais, envie mensagem para:
> [EMAIL PROTECTED]


---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para: 
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]

Responder a