Cara, seguinte...

se getAno retorna int, enxergue a expressão "a1.getAno()" como um int.

Assim, o que vc está fazendo é:

int1.compareTo(int2);

como int é tipo primitivo, não tem compareTo.

A solução que eu sugeri foi:
new Integer(int1).compareTo(new Integer(int2));

ou seja,

new Integer(a1.getAno()).compareTo(new Integer(a2.getAno()));

Abraço!

Peter P. Lupo
Undergraduating in Computer Science DCC/UFRJ
Sun Certified Java Associate
http://pplupo.googlepages.com/
Cell. +55 (21) 81742487



Jorge Ricardo Jau Junior wrote:
> Nossa...
> Na verdade, estou querendo fazer uma classe que implemente Comparator,
> daí ela precisa do método compare() reescrito.
> O problema é quando declaro que comparo os atributos primitivos.
> Por exemplo: minha classe compara os anos em instâncias de alunos, por
> exemplo.
> Se uso:
>       
>            a1.getAno().compareTo(a2.getAno());
>
> e ano for um int ou double o eclipse chia.
>
> Espero não estar repetindo dúvidas anteriores.
>
> Saudações.
>
> 2008/10/14 Peter <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>
>     Pode. Mas não é óbvio para quem lê. Eu faria "return new
>     Integer(int1).compareTo(new Integer(int2));"
>
>     Abraço!
>
>     Peter P. Lupo
>     Undergraduating in Computer Science DCC/UFRJ
>     Sun Certified Java Associate
>     http://pplupo.googlepages.com/
>     Cell. +55 (21) 81742487
>
>
>
>     Gabriel Pires wrote:
>>     Não poderia usar int1-int2 ? =P
>>
>>     2008/10/14 Peter <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>>
>>         Pelo que entendi, o problema é que o método não recebe como
>>         parâmetro tipos primitivos, apenas classes.
>>         Lembre-se que o compareTo só serve para dizer como comparar
>>         instâncias da classe que se está codificando, logo não faz
>>         sentido receber um tipo primitivo, já que vc não está
>>         codificando um tipo primitivo, e sim uma classe.
>>         Outra coisa que vale lembrar é que coleções só aceitam
>>         instâncias, não aceitam tipos primitivos. E as subclasses  de
>>         Number (Double, Integer, etc) já implementam Comparable.
>>
>>         Se vc fizer:
>>
>>         Collection<Integer> c = new TreeSet<Integer>();
>>         c.add(1);
>>
>>         o compilador vai entender
>>
>>         Collection<Integer> c = new TreeSet<Integer>();
>>         c.add(new Integer(1));
>>
>>         O nome deste recurso é autoboxing. E a ordenação estará
>>         garantida.
>>
>>
>>         Abraço!
>>
>>         P.S.: Buss, no compareTo vc não pode usar int1>=int 2 pq se
>>         for maior vc deve retornar um valor diferente de 0 e se for
>>         igual vc deve retornar 0. :¬þ então dificilmente vc vai usar
>>         o comparador >=. *rs*
>>
>>         Peter P. Lupo
>>         Undergraduating in Computer Science DCC/UFRJ
>>         Sun Certified Java Associate
>>         http://pplupo.googlepages.com/
>>         Cell. +55 (21) 81742487
>>
>>
>>
>>         Bruno Buss wrote:
>>>         Juro que não entendi...
>>>
>>>         Qual o problema em usar int1 == int2? int1 >= int2? etc...
>>>
>>>         2008/10/14 Jorge Ricardo Jau Junior <[EMAIL PROTECTED]
>>>         <mailto:[EMAIL PROTECTED]>>
>>>
>>>             O método compareTo() não faz comparações com tipos
>>>             primitivos, int e double....
>>>
>>>             Alguém sabe como resolver isso? Tipo, queria passar uma
>>>             comparação de inteiros sem ter que ficar convertendo...
>>>
>>>             Saudações!
>>>
>>>             -- 
>>>             "A verdadeira luta só começa quando achamos que não dá
>>>             pra lutar mais."
>>>
>>>             "Aquele que começou a boa obra em minha vida não terminou."
>>>
>>>
>>>
>>>
>>>
>>>         -- 
>>>         Bruno C. Buss
>>>         http://magoobr.blogspot.com/
>>>         http://www.dcc.ufrj.br/~brunobuss/
>>>         <http://www.dcc.ufrj.br/%7Ebrunobuss/>
>>>
>>>         Aluno do DCC - UFRJ - www.dcc.ufrj.br <http://www.dcc.ufrj.br>
>>>
>>>         if( ((*node)->valor) < (((*heap)[((*node)->gr)])->valor)) /*
>>>         WTF?! */
>>>
>>>         "Throughout your life, advance daily, becoming more skillful
>>>         than yesterday, more skillful than today. This is
>>>         never-ending." - Hagakure
>>>
>>>
>>
>>
>>
>>
>>
>
>
>
>
>
> -- 
> "A verdadeira luta só começa quando achamos que não dá pra lutar mais."
>
> "Aquele que começou a boa obra em minha vida não terminou."
>
> >

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Comp 
2 - Geral" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/comp2-geral?hl=en
-~----------~----~----~----~------~----~------~--~---

Responder a