This commit is contained in:
Looly 2020-05-10 00:06:11 +08:00
parent c1edd9b401
commit bd4a0a075f
7 changed files with 85 additions and 6 deletions

View File

@ -13,6 +13,8 @@
* 【extra 】 修复Ftp设置超时问题issue#I1GMTQ@Gitee
* 【core 】 修复TreeUtil根据id查找子节点时的NPE问题pr#120@Gitee
* 【core 】 修复BeanUtil.copyProperties中Alias注解无效问题issue#I1GK3M@Gitee
* 【core 】 修复CollUtil.containsAll空集合判断问题issue#I1G9DE@Gitee
* 【core 】 修复XmlUtil.xmlToBean失败问题issue#865@Github
-------------------------------------------------------------------------------------------------------------

View File

@ -307,7 +307,15 @@ public class CollUtil {
* @since 4.5.12
*/
public static boolean containsAll(Collection<?> coll1, Collection<?> coll2) {
if (isEmpty(coll1) || isEmpty(coll2) || coll1.size() < coll2.size()) {
if(isEmpty(coll1)){
return isEmpty(coll2);
}
if(isEmpty(coll2)){
return true;
}
if (coll1.size() < coll2.size()) {
return false;
}

View File

@ -714,7 +714,14 @@ public class DateUtil extends CalendarUtil {
}
/**
* 格式yyyy-MM-dd HH:mm:ss
* 解析日期时间字符串格式支持
*
* <pre>
* yyyy-MM-dd HH:mm:ss
* yyyy/MM/dd HH:mm:ss
* yyyy.MM.dd HH:mm:ss
* yyyy年MM月dd日 HH:mm:ss
* </pre>
*
* @param dateString 标准形式的时间字符串
* @return 日期对象
@ -725,7 +732,13 @@ public class DateUtil extends CalendarUtil {
}
/**
* 解析格式为yyyy-MM-dd的日期忽略时分秒
* 解析日期字符串忽略时分秒支持的格式包括
* <pre>
* yyyy-MM-dd
* yyyy/MM/dd
* yyyy.MM.dd
* yyyy年MM月dd日
* </pre>
*
* @param dateString 标准形式的日期字符串
* @return 日期对象

View File

@ -835,7 +835,11 @@ public class XmlUtil {
* @since 5.2.4
*/
public static <T> T xmlToBean(Node node, Class<T> bean) {
return BeanUtil.toBean(xmlToMap(node), bean);
final Map<String, Object> map = xmlToMap(node);
if(null != map && map.size() == 1){
return BeanUtil.toBean(map.get(bean.getSimpleName()), bean);
}
return BeanUtil.toBean(map, bean);
}
/**
@ -1042,6 +1046,17 @@ public class XmlUtil {
return doc;
}
/**
* 将Bean转换为XML
*
* @param bean Bean对象
* @return XML
* @since 5.3.4
*/
public static Document beanToXml(Object bean) {
return beanToXml(bean, null);
}
/**
* 将Bean转换为XML
*

View File

@ -36,7 +36,6 @@ public class CollUtilTest {
@Test
public void isNotEmptyTest(){
Assert.assertFalse(CollUtil.isNotEmpty((Collection<?>) null));
;
}
@Test
@ -589,8 +588,11 @@ public class CollUtilTest {
public void containsAllTest() {
ArrayList<Integer> list1 = CollUtil.newArrayList(1, 2, 3, 4, 5);
ArrayList<Integer> list2 = CollUtil.newArrayList(5, 3, 1);
Assert.assertTrue(CollUtil.containsAll(list1, list2));
ArrayList<Integer> list3 = CollUtil.newArrayList(1);
ArrayList<Integer> list4 = CollUtil.newArrayList();
Assert.assertTrue(CollUtil.containsAll(list3, list4));
}
@Test

View File

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.BetweenFormater.Level;
import cn.hutool.core.date.format.FastDateFormat;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import java.text.SimpleDateFormat;
@ -379,6 +380,14 @@ public class DateUtilTest {
Assert.assertEquals("2019-06-01 19:45:43", dateTime.toString());
}
@Test
@Ignore
public void parseTest8() {
String str = "2020-04-24 9:00:00";
DateTime dateTime = DateUtil.parse(str);
Assert.assertEquals("2019-06-01 19:45:43", dateTime.toString());
}
@Test
public void parseAndOffsetTest() {
// 检查UTC时间偏移是否准确

View File

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.map.MapBuilder;
import cn.hutool.core.map.MapUtil;
import lombok.Data;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
@ -174,4 +175,33 @@ public class XmlUtilTest {
document,XPathConstants.STRING);//
Assert.assertEquals("2020/04/15 21:01:21", value);
}
@Test
public void xmlToBeanTest(){
final TestBean testBean = new TestBean();
testBean.setReqCode("1111");
testBean.setAccountName("账户名称");
testBean.setOperator("cz");
testBean.setProjectCode("123");
testBean.setBankCode("00001");
final Document doc = XmlUtil.beanToXml(testBean);
Assert.assertEquals(TestBean.class.getSimpleName(), doc.getDocumentElement().getTagName());
final TestBean testBean2 = XmlUtil.xmlToBean(doc, TestBean.class);
Assert.assertEquals(testBean.getReqCode(), testBean2.getReqCode());
Assert.assertEquals(testBean.getAccountName(), testBean2.getAccountName());
Assert.assertEquals(testBean.getOperator(), testBean2.getOperator());
Assert.assertEquals(testBean.getProjectCode(), testBean2.getProjectCode());
Assert.assertEquals(testBean.getBankCode(), testBean2.getBankCode());
}
@Data
public static class TestBean{
private String ReqCode;
private String AccountName;
private String Operator;
private String ProjectCode;
private String BankCode;
}
}