今天学习使用beanutils写了一段代码
@Test
public void test() throwsIllegalAccessException,InvocationTargetException {
Person one =new Person();
one.setId("2");
System.out.println(one);
BeanUtils.setProperty(one, "id", "3");
System.out.println(one);
}
遇到了下面的异常:
java.lang.NoClassDefFoundError:org/apache/commons/collections/FastHashMap
原因是缺少一个叫commons-collections的包;
后来我将这个包导进去还是报错,
后来才发现是版本不兼容的问题;
于是我就把这仨个包弄进去
commons-collections-3.2.2.jar
commons-beanutils-1.9.3.jar
commons-logging-1.2.jar
神奇的事情发生了 没有报错了;
于是我就认为是版本的问题;但是我错了
我把commons-collections-3.2.2.jar删了竟然没事,还是能正常运行,这是为什么;于是我更极端把commons-collections4-4.1.jar弄进去(前期弄这个就是会报错)竟然也没事;
这是为什么?
于是我决定重新写一次;
于是乎我重新写了一个测试类
@Test
public void test() throws IllegalAccessException, InvocationTargetException {
Person one =new Person();
one.setId("2");
System.out.println(one);
BeanUtils.setProperty(one, "id", "3");
System.out.println(one);
}
还是没有报错?这是为什么?
我猜测是IDE的缓存问题!
那么我决定重新打开一个IDE重新写一个,神奇的事又发生了
我只把commons-beanutils-1.9.3.jar commons-logging-1.2.jar两个包导进去还是没有报错
这是为什么?
嘿,你或许可以试试
gradle
或者maven
这样的项目管理工具。