Java 我想使用commons-collections4-4.0 ComparatorChain进行排序
当我们使用最新的commons-collections4-4.0jar时,我们会收到一条错误消息,如下所示,关于使用ComparatorChain和BeanComparator生成排序选项。你知道这是怎么回事吗?我们使用commons bean utile-1.9.2.jar作为beanutils ■成功代码(commons-collections-3.2.1.jar)Java 我想使用commons-collections4-4.0 ComparatorChain进行排序,java,apache-commons,apache-commons-beanutils,apache-commons-collection,Java,Apache Commons,Apache Commons Beanutils,Apache Commons Collection,当我们使用最新的commons-collections4-4.0jar时,我们会收到一条错误消息,如下所示,关于使用ComparatorChain和BeanComparator生成排序选项。你知道这是怎么回事吗?我们使用commons bean utile-1.9.2.jar作为beanutils ■成功代码(commons-collections-3.2.1.jar) @SuppressWarnings(“未选中”) 私有void testCommonsChain(){ ComparatorC
@SuppressWarnings(“未选中”)
私有void testCommonsChain(){
ComparatorChain comparator=新的ComparatorChain();
List testDataBeanList=this.createTestDataBeanList();
comparator.addComparator(新BeanComparator(“名称”),true);
比较器。添加比较器(新比较器(“kngk”);
Collections.sort(testDataBeanList、comparator);
这个.printData(testDataBeanList);
}
■故障代码(commons-collections4-4.0.jar)
private void testcommonchain(){
ComparatorChain comparator=新的ComparatorChain();
List testDataBeanList=this.createTestDataBeanList();
comparator.addComparator(新BeanComparator(“名称”),true);
比较器。添加比较器(新比较器(“kngk”);
Collections.sort(testDataBeanList、comparator);
这个.printData(testDataBeanList);
}
错误日志
线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/commons/collections/comparators/ComparableComparator
位于org.apache.commons.beanutils.BeanComparator(BeanComparator.java:87)
位于logic.TestComparator.testCommonsChain(TestComparator.java:36)
位于logic.TestComparator.executeComparator(TestComparator.java:19)
在myTestOrange.TestMain.main(TestMain.java:10)
原因:java.lang.ClassNotFoundException:org.apache.commons.collections.comparators.ComparableComparator
位于java.net.URLClassLoader$1.run(URLClassLoader.java:202)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:190)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:306)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 4更多
至于它有什么问题:查看文件,commons-beanutils-1.9.2依赖于commons-collections-3.2.1。问题是,common beanutils引用的类在commons-collections-4.4.0中不再可用。问题是什么?您正在寻找解决方法?
@SuppressWarnings("unchecked")
private void testCommonsChain() {
ComparatorChain comparator = new ComparatorChain();
List<TestDataBean> testDataBeanList = this.createTestDataBeanList();
comparator.addComparator(new BeanComparator<TestDataBean>("name"), true);
comparator.addComparator(new BeanComparator<TestDataBean>("kngk"));
Collections.sort(testDataBeanList, comparator);
this.printData(testDataBeanList);
}
private void testCommonsChain() {
ComparatorChain<TestDataBean> comparator = new ComparatorChain<TestDataBean>();
List<TestDataBean> testDataBeanList = this.createTestDataBeanList();
comparator.addComparator(new BeanComparator<TestDataBean>("name"), true);
comparator.addComparator(new BeanComparator<TestDataBean>("kngk"));
Collections.sort(testDataBeanList, comparator);
this.printData(testDataBeanList);
}
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/comparators/ComparableComparator
at org.apache.commons.beanutils.BeanComparator.<init>(BeanComparator.java:87)
at logic.TestComparator.testCommonsChain(TestComparator.java:36)
at logic.TestComparator.executeComparator(TestComparator.java:19)
at myTestOrange.TestMain.main(TestMain.java:10)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.comparators.ComparableComparator
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 4 more