Comparator
Netbeans と Weblogic 12c を使用して、Java 1.7 から Java 1.8 にアップグレードした後、インターフェイスでサーブレット コンパイル エラーが発生します。.jsp
ファイルは Java 1.7 で正常に実行されました。他の同様の質問を読みましたが、解決策が見つかりませんでした。Weblogic ドメイン構成の JSP Compiler Backwards Compatible を確認しようとしましたが、成功しませんでした。コンパイラが不満を言っているメソッドはdefault
メソッドなので、言及する必要はありませんよね?実装するクラスはComparator
、Java 8 用に書き直す必要がありますか? もしそうなら、アドバイスしてください。
エラー
viewFundCites.jsp:151:11: The type compareFundedPrOrderedByPr must implement the inherited abstract method Comparator.thenComparing(Function, Comparator)
class compareFundedPrOrderedByPr implements Comparator {
^-----------------------^
コード
class compareFundedPrOrderedByPr implements Comparator {
public int compare (Object a, Object b) {
int ordering = 0;
FundCite itemA = (FundCite)a;
FundCite itemB = (FundCite)b;
if ((null == itemA) && (null == itemB)) {
ordering = 0;
} else if ((null == itemA.getPrName()) && (null == itemB.getPrName())) {
ordering = 0;
} else if (null == itemA.getPrName()) {
ordering = -1;
} else if (null == itemB.getPrName()) {
ordering = 1;
} else {
// Do primary sort by PR Name.
ordering = itemA.getPrName().compareTo(itemB.getPrName());
if (0 == ordering) {
// Do secondary sort by CLIN.
if ((null == itemA.getClin()) && (null == itemB.getClin())) {
ordering = 0;
} else if (null == itemA.getClin()) {
ordering = -1;
} else if (null == itemB.getClin()) {
ordering = 1;
} else {
ordering = itemA.getClin().compareTo(itemB.getClin());
}
}
}
return ordering;
}
}