首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想使用公用集合4-4.0 ComparatorChain进行排序。

我想使用公用集合4-4.0 ComparatorChain进行排序。
EN

Stack Overflow用户
提问于 2014-06-16 15:37:55
回答 1查看 1.8K关注 0票数 0

当我们使用最新的公共集合4-4.0jar时,我们会收到一条错误消息,如下所示:使用ComparatorChain和BeanComparator选择排序。你知道这是怎么回事吗?我们对beanutils使用commons utile-1.9.2.jar。

成功代码(共用-集合-3.2.1.jar)

代码语言:javascript
复制
@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);

}

失败代码(公用-集合4-4.0.jar)

代码语言:javascript
复制
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);

}

错误日志

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-25 23:53:16

至于它的问题是什么:查看POM文件,commons 1.9.2依赖于collections 3.2.1。问题是,公共-beanutils引用的类不再在collections 4.4.0中可用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24247357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档