Estava justamente estudando Interfaces pelo livro SCJP6 nessa manhã, e juro que nunca vi isso…
No link uma resposta explica que interfaces aninhadas já são implicitamente static e que esse modificador pode ser retirado sem problemas…
Mas aí vem a pergunta, pra que usar uma interface que só pode ser implementada por classes que tenham acesso à classe que contém essa interface?
Ao meu ver só quebra as facilidades de encapsulamento que as interfaces proporcionam…
Vamos aguardar se alguém com mais conhecimento possa explicar esse código…
:roll:
wagnerfrancisco
Ruttmann:
Estava justamente estudando Interfaces pelo livro SCJP6 nessa manhã, e juro que nunca vi isso…
No link uma resposta explica que interfaces aninhadas já são implicitamente static e que esse modificador pode ser retirado sem problemas…
Mas aí vem a pergunta, pra que usar uma interface que só pode ser implementada por classes que tenham acesso à classe que contém essa interface?
Ao meu ver só quebra as facilidades de encapsulamento que as interfaces proporcionam…
Vamos aguardar se alguém com mais conhecimento possa explicar esse código…
:roll:
No caso de interfaces públicas dentro de outras classes ou interfaces, me parece que é mais uma questão de organização. A interface Entry está definida dentro da interface Map (java.util). Poderia ser fora, mas da maneira que foi definido, fica bem claro o propósito desta interface. Veja:
Uma interface Entry perdida no pacote java.util diz pouco, mas uma interface Entry definida dentro da interface Map, deixa bem claro o seu propósito.
Ainda tem interfaces privadas dentro de classes. Nesse caso creio que a interface só faça sentido dentro de um determinado contexto (classe). Ela é definida dentro da classe para garantir que nenhum usuário tente implementá-la e cause problemas para manter compatibilidade em futuras versões.