最新の commons-collections4-4.0jar を使用すると、ComparatorChain と BeanComparator を使用して並べ替えオプションを作成すると、次のようなエラー メッセージが表示されます。これの何が問題なのか分かりますか?beanutils には commons-bean utile-1.9.2.jar を使用します。
■成功コード (commons-collections-3.2.1.jar)
@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);
}
■失敗コード(commons-collections4-4.0.jar)
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