【发布时间】:2016-02-01 20:21:44
【问题描述】:
比较器有问题。我用 2 个字段制作了非常简单的类,我需要为这两个字段制作带有比较器的内部类。
public class KlassA {
private int i;
private String tekst;
public int getI(){
return i;
这个比较器工作正常。
public static class KomparatorText implements Comparator<KlassA>{
public int compare(KlassA a1, KlassA a2) {
return a1.getTekst().compareTo(a2.getTekst());
}
}
在这个比较器中我有一些问题:“无法在原始类型 int 上调用 compareTo(int)”
public static class KomparatorI implements Comparator<KlassA>{
public int compare(KlassA a1, KlassA a2) {
return a1.getI().compareTo(a2.getI());
}
}
我也尝试了 CompareTo,但是我需要实现字段或方法,但它不起作用
public static class KomparatorI implements Comparable<KlassA>{
private int i = this.i;
public int compareTo(KlassA o) {
if (this.i < o.i)
return -1;
else if (this.getI() == o.getI())
return 0;
else
return 1;
}
}
}
我真的不知道如何解决它。我已经在搜索其他查询,但所有解决方案都不适用于我的示例。请帮忙。
【问题讨论】:
标签: java