Tenho mais um codigo que está me deixando com os cabelos brancos apesar dos 22 anos ...
Tenho uma inteface:
Public intefacecpublic interface GeradorPrimos {
java.util.List<Integer> primeosAte(int n);
}
Porém da um erro linha 3 da inteface...
Dá porque você é desatento e não digitou direito na hora de criar sua interface. Quiquiéisso é essa de "Public intefacecpublic" ?
Mitnick8
Digitei o código errado aqui no Fórum mais no Netbeans está correcto.
romarcio
Tem certeza que da erro na interface? Não tem nada errado com ela.
Já para implementa-la vc faz assim:
importjavax.swing.*;importjava.util.*;publicclassQuestao_02implementsGeradorPrimos{publicList<Integer>primeosAte(intn){List<Integer>list=newArrayList<Integer>();/// e aqui vc coloca o código que quizerreturnlist;}//demais códigos da classe}
public interface GeradorPrimos {
public java.util.List<Integer> primeosAte(int n);
}
Não henriquejhc, não é isso não.
Quando criamos um método em uma interface, esse método deve ser public e abstract, mas não precisamos declara-lo assim, pq o compilador sabe que ele é public e abstract.
Então, poderiamos ter as seguintes declarações:
java.util.List<Integer> primeosAte(int n);
ou
public java.util.List<Integer> primeosAte(int n);
ou
public abstract java.util.List<Integer> primeosAte(int n);
O problema não é esse. E ele pouco tem a ver com a versão do Java instalada. Uma das configurações de projeto do seu netbeans está dizendo que você quer código compatível com Java 4.
Isso é definido por uma das flags do compilador, que no caso é a -source. Na mão, você dá a opção assim:
javac -source 1.4 SeuPrograma.java
Você deve procurar aí na sua IDE por essa configuração. Eu não uso o netbeans.
Um outro problema no seu código é que os numeros são “primos” e não “prim[color=red]e[/color]os”.
Eric_Yuzo
Não conhecia este recurso.
Vini, já chegou a compilar classes desta forma? O resultado é bom?
Legal a informação. Valeu.
ViniGodoy
Ok.
Baixei o Netbeans aqui.
Clique com o botão direito sobre seu projeto. E clique em propriedades. Na aba “códigos fonte”, em “Formato do código Fonte/Binário” verifique se está marcada a opção JDK 5 (ver figura em anexo).
Em construir/compilação, certifique-se que não há a opção -source 1.4 em “Opções adicionais do compilador” (ver figura 2, em anexo).
Já sim. É muito interessante. Claro que tem algumas limitações, mas funciona direitinho.
Você tem tanto a opção -source, que restringe seu código fonte, quanto a opção -target, que não restringe tanto e “compatibiliza” o resultado final.
A opção -target permite, por exemplo, que você use generics, varargs e enums, e eles sejam transformados em binários compatíveis de versões anteriores do java. Como a maioria sabe (ou deveria saber) esses recursos aproximam-se mais de “sintax suggars” do que de funcionalidades reais da linguagem. Os generics, por exemplo, tem o type erasure e, portanto, praticamente não existem no bytecode, mesmo do Java 5 (apenas algumas informações de reflection existem). Os varargs são transformados em arrays comuns, autoboxing e unboxing são transformadas na sua construção completa.
Como faço essa implementação, e tenho outras duas classes para implementar nesta mesma interface, pergunto se isso é possível.
Mitnick8
Alguém pode me ajudar a implementar essa classe com a interface citada?
Eric_Yuzo
A interface já está implementada na sua classe. Já foi declarado que interface vai implementar e foi declarado o método. Falta apenas colocar o código que conta os primos (não primeos), que é o mesmo que está no método main, mas ao invés de dar um print na tela, deve adicionar o número na lista.