我想將重復(fù)代碼放入方法中,但找不到解決方案。該方法應(yīng)該采用不同類型的類型,例如實現(xiàn) Comparable 的String和Long,以便使用該compareTo()函數(shù)。原來的:Comparator<Pair<String, Long>> PAIR_COMPARATOR_FIRST = (o1, o2) -> o1.getFirst() == null ? o2.getFirst() == null ? 0 : -1 : o2.getFirst() == null ? +1 : o1.getFirst().compareTo(o2.getFirst());Comparator<Pair<String, Long>> PAIR_COMPARATOR_SECOND = (o1, o2) -> o1.getSecond() == null ? o2.getSecond() == null ? 0 : -1 : o2.getSecond() == null ? +1 : o1.getSecond().compareTo(o2.getSecond());我嘗試過:(不起作用)Comparator<Pair<String, Long>> PAIR_COMPARATOR_FIRST =(o1, o2) -> nullProfCompare(o1.getFirst(), o2.getFirst());Comparator<Pair<String, Long>> PAIR_COMPARATOR_SECOND =(o1, o2) -> nullProfCompare(o1.getSecond(), o2.getSecond());public static int nullProfCompare(Comparable<T> o1, T o2) { return o1 == null ? o2 == null ? 0 : -1 : o2 == null ? +1 : o1.compareTo(o2);}我已經(jīng)嘗試了很多類似使用instanceOf/isAssignableFrom但沒有任何效果。該方法應(yīng)該如何只接受實現(xiàn) Comparable 的變量?
創(chuàng)建僅采用值作為參數(shù)的方法,該方法實現(xiàn) Comparable<T>
繁華開滿天機(jī)
2023-10-13 14:54:22