我得到错误:
"Bad Operand Types for Binary Operator ">" first type: Time second type: Time"
代码:
public class MovieSession implements Comparable<MovieSession> {
private String movieName;
private char rating;
private Time sessionTime;
private SeatReservation[][] sessionSeats;
public static int NUM_ROWS;
public static int NUM_COLS;
public MovieSession(String movieName, char rating, Time sessionTime) {
this.movieName = movieName;
this.rating = rating;
this.sessionTime = sessionTime;
}
This is the method where it gives me the error:
@Override
public int compareTo(MovieSession currentMovieSession) {
if (this.sessionTime < currentMovieSession.sessionTime)
{
return -1;
}
else if (this.sessionTime > currentMovieSession.sessionTime)
{
return 1;
}
if(this.sessionTime == currentMovieSession.sessionTime)
{
return this.movieName > currentMovieSession.movieName ? 1 : -1;
}
}
>
是一个数值比较操作员,根据JLS SEC 15.20.1:
数值比较操作员的每个操作数的类型必须是一种可转换为原始数字类型的类型(§5.1.8(,或者发生编译时误差。
您的Time
类型不能转换为原始数字类型,因为它不是原始包装器。因此错误。
如果要比较它们,则Time
时间必须实现Comparable<Time>
,则可以写:
if (time1.compareTo(time2) > 0) { // Like "time1 > time2"
}