Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想使用commons-collections4-4.0 ComparatorChain进行排序_Java_Apache Commons_Apache Commons Beanutils_Apache Commons Collection - Fatal编程技术网

Java 我想使用commons-collections4-4.0 ComparatorChain进行排序

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

当我们使用最新的commons-collections4-4.0jar时,我们会收到一条错误消息,如下所示,关于使用ComparatorChain和BeanComparator生成排序选项。你知道这是怎么回事吗?我们使用commons bean utile-1.9.2.jar作为beanutils

■成功代码(commons-collections-3.2.1.jar)
@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