泛型类型枚举和静态导入导致模糊方法问题

时间:2014-02-28 02:13:52

标签: java android

我必须使用各种泛型类型PalacePeopleApartment为每个我创建一个带有比较器的枚举类来对多个字段进行比较,

我的枚举类的样本就是这个

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,因为它存在于所有三个枚举中。

如果不拆分我的课程,我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:1)

在这种情况下,请勿使用import static。只需导入枚举类并使用PalaceComparator.getComparator()