privatevoidmyMethod(Strings,inti,Longl){//esse aqui faz o bagulho}privatevoidmyMethod(Strings,inti){//esse aqui chama o outro com valor padraothis.myMethod(s,i,newLong(2));}privatevoidmyMethod(Strings){//esse aqui chama o outro com dois valor padraothis.myMethod(s,0,newLong(2));}
sds
kaique
Cara, você pode fazer isso utilizando sobrecarga de métodos, assim terá um método para cada chamada sua (não muito elegante e produtivo), ou então pode utilizar um recurso do java 5 chamado varargs…
Procura no google sobre varargs…
Aí vai uma ajuda… http://today.java.net/today/2004/09/30/varargs.pdf
[]'s.
L
leonickel
Ola Rage,
Na versção do Java 5 saiu uma forma de argumento nova chamada “varargs” que é exatamente o que voce quer, fazer com que um argumento seja opcional ou nao. E ele tem uma coisa a mais, este argumento pode receber inúmeros parametros nele.
Ex:
privatevoidmyMethod(Strings,intiString...arg)
quando vc chamar este método vc pode chamá-lo das seguintes maneiras:
Ou então usar varargs, mas você precisa tomar um pouco de cuidado. No seu caso, os tipos dos parâmetros são todos diferentes, e varargs é mais adequado quando os tipos são iguais. Se todos os tipos forem diferentes, então você tem de usar Object, como no caso que implementa seu exemplo:
Se os argumentos fossem do mesmo tipo e a versão do java >=5, vc poderia chamar assim:
private void myMethod(String... s){
//...
}
Neste caso, vc receberia um arrai de strings dentro do seu método, com quantos parametros vc quizesse…
Mas pra isso vc só pode usar um (…) e sempre como o ultimo argumento do método.
[edited]O pessoal tá sendo rápido… 3 respostas iguais ao mesmo tempo… isso sim, deve acontecer…[/edited]
LPJava
lembrando que o recurso vargs é do java 5… se tentar em qualquer versao anterior o codigo nao compila.