1

这种有什么问题吗?它不能正常工作。

 public List<LibRegistration> getLibraryRegistrationsSortedByTypeAndName()
    {
        List<LibRegistration> l = getLibRegs();
        Collections.sort(l, new Comparator<LibRegistration>() {
            public int compare(LibRegistration o1, LibRegistration o2) {
               return o1.getLibraryType().compareTo(o2.getLibraryType()) != 0?o1.getLibraryType().compareTo(o2.getLibraryType()):o1.getLibraryName().compareTo(o2.getLibraryName());
            }
        });
        return l;
    }
4

1 回答 1

4

没有错,更清楚:

        public int compare(LibRegistration o1, LibRegistration o2) {
            int cmp = o1.getLibraryType().compareTo(o2.getLibraryType());
            if (cmp == 0)
                cmp = o1.getLibraryName().compareTo(o2.getLibraryName());
            return cmp;
        }

虽然不允许空值并且 compareTo 定义明确。

于 2013-03-21T10:07:06.873 回答