Pessoal,
gostaria de saber se é possível em uma interface, definir um método como
opcional de ser implementado. E se é possível, então como definir isso?
Tks in advance
Pessoal,
gostaria de saber se é possível em uma interface, definir um método como
opcional de ser implementado. E se é possível, então como definir isso?
Tks in advance
Interface é um contrato. Você é obrigado a implementar todos os métodos.
Até!
[quote=maquiavelbona]Interface é um contrato. Você é obrigado a implementar todos os métodos.
Até![/quote]
Obrigado galera.
Eu tive esta dúvida qdo estava lendo uma introdução ao collections framework
no site da sun:
http://java.sun.com/developer/onlineTraining/collections/Collection.html#Introduction
E lá tem um paragrafo que diz:
“However, some of the interface methods are optional.”
O que o autor pode estar querendo dizer com isto?
Mais uma vez obrigado.
O código é obrigado a implementar todos os métodos. Isso não significa que todos os métodos são implementados corretamente. Por exemplo, em Collections que não são alteradas (Collections.unmodifiedCollection), os métodos que alteram a Collection lançam UnsupportedOperationException .
Isso significa que a classe que implementar o método não é obrigado a fazer aquilo que o método foi desenhado para fazer. Nesse caso ele deve lançar uma UnsupportedOperationException(). Nota: não significa que o método deve ter implementação vazia, e sim que ele deve lançar uma exceção informando que não suporta o uso daquele método.
Exemplo: Uma coleção não é obrigada a implementar add() e as coleções obtidas com Collections.singletonXXX ou Collections.emptyXXX realmente não implementam esse método (aliás , não faz sentido se implementassem).
O objetivo disse é criar coleções iteráveis, mas imutaveis.
Recentemente foi adicionada a interface Iteratable que simplifica o uso de coleções (e outras coisas) não obrigando o programador a usar coleções “parcilamente implementadas”
Pessoal,
valew mesmo!
[]'s