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