Java 使用Comparator接口的Servlet编译错误
从Java1.7升级到Java1.8后,使用Netbeans和WebLogic12c,我们在Java 使用Comparator接口的Servlet编译错误,java,compiler-errors,java-8,comparator,abstract-methods,Java,Compiler Errors,Java 8,Comparator,Abstract Methods,从Java1.7升级到Java1.8后,使用Netbeans和WebLogic12c,我们在Comparator接口上发现servlet编译错误。.jsp文件在Java1.7中运行良好。我读过其他类似的问题,但没有找到解决办法。我尝试过向后兼容Weblogic域配置JSP编译器,但没有成功。编译器抱怨的方法是default方法,因此不需要提及它们,对吗?实现Comparator的类是否需要为Java8重新编写?如有,请告知 错误 viewFundCites.jsp:151:11: The ty
Comparator
接口上发现servlet编译错误。.jsp
文件在Java1.7中运行良好。我读过其他类似的问题,但没有找到解决办法。我尝试过向后兼容Weblogic域配置JSP编译器,但没有成功。编译器抱怨的方法是default
方法,因此不需要提及它们,对吗?实现Comparator
的类是否需要为Java8重新编写?如有,请告知
错误
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;
}
}
当应用程序在NetBeans或Weblogic日志中构建和打包时,是否会出现此消息?当尝试运行jsp时,会出现此消息。构建过程中没有错误。然后,可能会发生以下情况:使用JavaSE1.8编译类,然后将应用程序部署到WebLogic,然后它尝试编译JSP页面,但由于某种原因失败。可能用于运行WebLogic的Java SE版本不是1.8?Netbeans使用jdk-8u74编译代码,不会抛出错误。Weblogic使用相同的jdk。所有其他版本的java都已卸载。这个错误只出现在运行时出现的.jsp中。我认为早期(1.8之前)版本的Java在某种程度上涉及到了这个错误,但我不知道具体如何。如果不是,为什么编译器会抱怨一个
默认
方法。当应用程序在NetBeans或Weblogic日志中构建和打包时,会出现此消息吗?当尝试运行jsp时,会出现此消息。构建过程中没有错误。然后,可能会发生以下情况:使用JavaSE1.8编译类,然后将应用程序部署到WebLogic,然后它尝试编译JSP页面,但由于某种原因失败。可能用于运行WebLogic的Java SE版本不是1.8?Netbeans使用jdk-8u74编译代码,不会抛出错误。Weblogic使用相同的jdk。所有其他版本的java都已卸载。这个错误只出现在运行时出现的.jsp中。我认为早期(1.8之前)版本的Java在某种程度上涉及到了这个错误,但我不知道具体如何。如果不是,为什么编译器会抱怨默认方法。