我必须使用各种泛型类型Palace
,People
,Apartment
为每个我创建一个带有比较器的枚举类来对多个字段进行比较,
我的枚举类的样本就是这个
enum PeopleComparator implements Comparator<People> {
ID_SORT {
public int compare(People o1, People o2) {
return Integer.valueOf(o1.getId()).compareTo(o2.getId());
}},
NAME_SORT {
public int compare(People o1, People o2) {
return o1.getFullName().compareTo(o2.getFullName());
}};
public static Comparator<People> decending(final Comparator<People> other) {
return new Comparator<People>() {
public int compare(People o1, People o2) {
return -1 * other.compare(o1, o2);
}
};
}
public static Comparator<People> getComparator(final PeopleComparator... multipleOptions) {
return new Comparator<People>() {
...
}
};
}
}
在主类中使用枚举比较器,我必须这样做 import static PeopleComparator。*;
在我的类
中的枚举中使用静态比较器现在的问题是: 在同一个类中,我无法进行其他静态导入
import static PalaceComparator.*;
和
import static ApartmentComparator.*;
因为结果模糊了静态方法getComparator
,因为它存在于所有三个枚举中。
如果不拆分我的课程,我怎么能解决这个问题?
答案 0 :(得分:1)
在这种情况下,请勿使用import static
。只需导入枚举类并使用PalaceComparator.getComparator()
。