Curioso... Só funcionou com double... usando new Integer dá o mesmo erro.

2008/10/15 Jorge Ricardo Jau Junior <[EMAIL PROTECTED]>

> Ok, vou testar.
>
> 2008/10/15 Peter <[EMAIL PROTECTED]>
>
>  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 Associatehttp://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]>
>>
>>> 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 Associatehttp://pplupo.googlepages.com/
>>> Cell. +55 (21) 81742487
>>>
>>>
>>>
>>>  Gabriel Pires wrote:
>>>
>>> Não poderia usar int1-int2 ? =P
>>>
>>> 2008/10/14 Peter <[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 Associatehttp://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]>
>>>>
>>>>> 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
>>>>
>>>> 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."
>>
>>
>>
>> >>
>>
>
>
> --
> "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."
>



-- 
"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