From e117fe5b0822efb4d0b3c79f5471a0c9ab75fcc4 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 24 May 2023 11:45:42 +0800 Subject: [PATCH] fix code --- .../hutool/extra/aop/IssueI74EX7Test.java | 63 ++++++++++++++++++ .../dromara/hutool/poi/excel/ExcelReader.java | 2 +- .../hutool/poi/excel/ExcelReadTest.java | 2 +- .../hutool/poi/excel/Issue3120Test.java | 33 +++++++++ hutool-poi/src/test/resources/issue3120.xlsx | Bin 0 -> 9371 bytes 5 files changed, 98 insertions(+), 2 deletions(-) create mode 100755 hutool-extra/src/test/java/org/dromara/hutool/extra/aop/IssueI74EX7Test.java create mode 100755 hutool-poi/src/test/java/org/dromara/hutool/poi/excel/Issue3120Test.java create mode 100755 hutool-poi/src/test/resources/issue3120.xlsx 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 0000000000000000000000000000000000000000..06fc13451433db0e92228ee2429e2d123c3cd584 GIT binary patch literal 9371 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