Sou um iniciante no java e no seguinte troço de código tenho seguinte erro: The method compareTo(String, String) is undefined for the type UtentePasse.
A classse UtentePasse é uma classe que herda de uma classe mãe Utente.
Não percebo porque ele não reconhece o método compareTo, quando é um método que faz parte da biblioteca java.lang.String.
Alguém me poderia ajudar.
private static void validaTitulo(){
String compara=“10”;
if(compareTo(compara,mes)){
System.out.println(“Valido ate ao final do mes corrente!”);
}
else
titulo=0;
}
Bom, primeiro você deve usar uma instância da classe String para utilizar o método compareTo, note que você está invocando o método como se fosse um método estático da sua classe.
Segundo, dê uma olhada na documentação do método compareTo e veja que o método retorna um tipo int, incompatível com o tipo boolean que você está tentnado colocar no if, além de receber apenas um parâmetro.
Usando o seu fonte, a chamada deveria ser
compara.compareTo(mes)
mas ainda teria o problema com o tipo int retornado pelo método compareTo
Já consegui resolver o problema, a forma como estava a chamar o método estava errada.
private static void validaTitulo(){
String compara=“10”;
if(compara.compareTo(mes)==0){
System.out.println(“Valido ate ao final do mes corrente!”);
}
else
titulo=0;
}
Outra dica, Claudio. Pesquise também a classe Collator. Ela faz comparações e ordenações levando (ou não) em consideração a acentuação.
Ah! Da próxima vez que abrir um tópico, dê um título mais claro como “preciso de ajuda com compareTo”. Isso ajuda ao pessoal certo entrar e resolver sua dúvida.