2015-04-30 6 views
-1

Я пытаюсь использовать compareTo с целым числом, но это не позволит мне. Помоги пожалуйста! Вот мой код:compareTo with integer

public int compareTo(Book book) 
    { 
     if (this.author.compareToIgnoreCase(book.author) < 0) return -1; 
     if (this.author.compareToIgnoreCase(book.author) > 0) return 1; 
     if (this.author.equalsIgnoreCase(book.author)) 
     { 
      if (this.numOfPages.compareTo(book.numOfPages) < 0) return -1; 
      else if (this.lyrics.compareToIgnoreCase(song.lyrics) > 0) return 1; 
      else if (this.lyrics == song.lyrics) return 0; 
      else return 1; 
     } 
     return 0; 
    } 
+0

Какие типы данных this.numOfPages и book.numOfPages и т.д.? – BretC

+0

Они оба ints – user3583313

+0

Если они маленькие 'int', вам может понадобиться 'new Integer (this.numOfPages) .compareTo (book.numOfPages)' может быть? – BretC

ответ

0

Я предполагаю, что вы определяете numOfPages как:

int numOfPages; //primitive integer 

если вы вместо того, чтобы использовать объект repsentation из int, он должен работать.

, например:

Integer numOfPages; //object integer 
+0

Или ... вы знаете ... вы могли бы просто сделать 'numOfPages NoseKnowsAll

+2

, она пытается использовать метод ** compareTo **, очевидно используя == лучше, но если вы настаиваете на использовании ** compareTo **, то это один из способов сделать это. – nafas