diff --git a/hutool-extra/src/test/java/org/dromara/hutool/extra/aop/IssueI74EX7Test.java b/hutool-extra/src/test/java/org/dromara/hutool/extra/aop/IssueI74EX7Test.java new file mode 100755 index 000000000..202c62a41 --- /dev/null +++ b/hutool-extra/src/test/java/org/dromara/hutool/extra/aop/IssueI74EX7Test.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2023 looly(loolly@aliyun.com) + * Hutool is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * http://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +package org.dromara.hutool.extra.aop; + +import org.dromara.hutool.core.lang.Console; +import org.dromara.hutool.extra.aop.aspects.SimpleAspect; +import org.junit.jupiter.api.Test; + +import java.lang.reflect.Method; +import java.util.Arrays; + +public class IssueI74EX7Test { + + @Test + void proxyTest() { + final SmsBlend smsBlend = new SmsBlendImpl(1); + ProxyUtil.proxy(smsBlend, new SimpleAspect(){ + private static final long serialVersionUID = 1L; + + @Override + public boolean before(final Object target, final Method method, final Object[] args) { + Console.log("切面进入"); + return true; + } + + @Override + public boolean after(final Object target, final Method method, final Object[] args, final Object returnVal) { + Console.log("代理Object:"+target.toString()); + Console.log("代理方法:"+method.getName()); + Console.log("代理参数:"+ Arrays.toString(args)); + return super.after(target, method, args, returnVal); + } + }); + } + + public interface SmsBlend{ + void send(); + } + + public static class SmsBlendImpl implements SmsBlend{ + + private int status; + + public SmsBlendImpl(final int status) { + this.status = status; + } + + @Override + public void send() { + Console.log("sms send." + status); + } + } +} diff --git a/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/ExcelReader.java b/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/ExcelReader.java index 3bbf1f315..106470458 100644 --- a/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/ExcelReader.java +++ b/hutool-poi/src/main/java/org/dromara/hutool/poi/excel/ExcelReader.java @@ -208,7 +208,7 @@ public class ExcelReader extends ExcelBase { * @return 行的集合,一行使用List表示 */ public List> read(final int startRowIndex, final int endRowIndex) { - return read(startRowIndex, endRowIndex, true); + return read(startRowIndex, endRowIndex, false); } /** diff --git a/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/ExcelReadTest.java b/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/ExcelReadTest.java index ce4a60d91..a69855542 100644 --- a/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/ExcelReadTest.java +++ b/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/ExcelReadTest.java @@ -38,7 +38,7 @@ public class ExcelReadTest { reader.setHeaderAlias(headerAlias); // 读取list时默认首个非空行为标题 - final List> read = reader.read(); + final List> read = reader.read(0, Integer.MAX_VALUE, true); Assertions.assertEquals("userName", read.get(0).get(0)); Assertions.assertEquals("storageName", read.get(0).get(1)); Assertions.assertEquals("checkPerm", read.get(0).get(2)); diff --git a/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/Issue3120Test.java b/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/Issue3120Test.java new file mode 100755 index 000000000..04ef86c48 --- /dev/null +++ b/hutool-poi/src/test/java/org/dromara/hutool/poi/excel/Issue3120Test.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2023 looly(loolly@aliyun.com) + * Hutool is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * http://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +package org.dromara.hutool.poi.excel; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.List; + +/** + * + */ +public class Issue3120Test { + + @Test + void readTest() { + final ExcelReader reader = ExcelUtil.getReader("issue3120.xlsx"); + final List> read = reader.read(2, Integer.MAX_VALUE, false); + Assertions.assertEquals("[1, null, 100, null, 20]", read.get(0).toString()); + Assertions.assertEquals("[32, null, 200, null, 30]", read.get(1).toString()); + } + +} diff --git a/hutool-poi/src/test/resources/issue3120.xlsx b/hutool-poi/src/test/resources/issue3120.xlsx new file mode 100755 index 000000000..06fc13451 Binary files /dev/null and b/hutool-poi/src/test/resources/issue3120.xlsx differ