use*_*903 3 java int compiler-errors comparator dereference
我正在做一些作业,但遇到了一个问题。
我得到了这个示例代码:
public class PersonNameComparator implements Comparator<Person>{
public int compare(Person p1, Person p2) {
int retValue = p1.getName().compareTo(p2.getName());
if (retValue != 0)
return retValue;
else if (p1.getAge() < p2.getAge())
return -1;
else if (p1.getAge() > p2.getAge())
return 1;
else
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这样做时,会发生这种情况:
public class DVDComparator implements Comparator <DVD> {
public int compare(DVD d1,DVD d2)
{
int stars1 = d1.getNoOfStars().compareTo(d2.getNoOfStars());
//ERROR - int cannot be dereferenced.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
由于 getNoOfStars() 返回原始 int 并且没有为原始类型定义方法 compareTo(),因此您会收到此错误消息。
如果您使用的是 Java SE 7,则可以使用以下内容:
public class DVDComparator implements Comparator <DVD> {
public int compare(DVD d1,DVD d2){
return Integer.compare(d1.getNoOfStars(), d2.getNoOfStars());
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13920 次 |
最近记录: |